ADVERTISEMENT

dnspython adalah pustaka Python yang digunakan untuk melakukan query DNS secara langsung dari kode. Dengan pustaka ini, Anda bisa mencari berbagai jenis data DNS seperti alamat IP, server email, dan informasi domain lainnya.

Artikel ini menjelaskan cara memasang dnspython dan contoh penggunaannya untuk melakukan pencarian beberapa jenis DNS record.

Apa itu dnspython?

dnspython adalah pustaka pihak ketiga di Python yang memungkinkan kita melakukan operasi DNS, seperti mencari record A (alamat IPv4), MX (Mail Exchange), NS (Name Server), TXT, dan lainnya.

Instalasi

Untuk mulai menggunakan dnspython, instal dulu pustakanya dengan perintah berikut:

pip install dnspython

Pastikan Python 3 sudah terpasang di sistem Anda.

Contoh Penggunaan

Berikut ini contoh program Python yang bisa melakukan DNS lookup untuk beberapa jenis record sekaligus:

#!/usr/bin/env python3

import dns.resolver
import sys

def perform_dns_lookup(domain, record_type='A'):
    """
    Melakukan pencarian DNS untuk domain dan tipe record tertentu
    """
    try:
        resolver = dns.resolver.Resolver()
        answers = resolver.resolve(domain, record_type)
        
        print(f"\n{record_type} Records untuk {domain}:")
        print("-" * 50)
        
        for rdata in answers:
            if record_type == 'MX':
                print(f"Mail Server: {rdata.exchange}, Preference: {rdata.preference}")
            else:
                print(rdata.to_text())
                
    except dns.resolver.NXDOMAIN:
        print(f"Domain {domain} tidak ditemukan.")
    except dns.resolver.NoAnswer:
        print(f"Tidak ada record {record_type} untuk {domain}.")
    except Exception as e:
        print(f"Kesalahan: {str(e)}")

def main():
    if len(sys.argv) < 2:
        print("Penggunaan: python dns_lookup_example.py <domain>")
        print("Contoh: python dns_lookup_example.py google.com")
        sys.exit(1)
    
    domain = sys.argv[1]
    record_types = ['A', 'AAAA', 'MX', 'NS', 'TXT', 'SOA']
    
    print(f"DNS Lookup untuk {domain}")
    print("=" * 50)
    
    for record_type in record_types:
        perform_dns_lookup(domain, record_type)

if __name__ == "__main__":
    main()

Cara Menjalankan

Simpan kode di atas sebagai dns_lookup_example.py.

Jalankan dari terminal:

python dns_lookup_example.py hanifmu.com

Program ini akan menampilkan semua record DNS penting dari domain yang Anda masukkan.

Penutup

dnspython sangat berguna untuk keperluan debugging jaringan, analisis domain, dan pengembangan tool monitoring. Dengan hanya beberapa baris kode, Anda bisa mendapatkan banyak informasi DNS yang berguna.

Jika Anda sering bekerja dengan data domain atau jaringan, pustaka ini layak untuk dipelajari lebih lanjut.

ADVERTISEMENT