DNS-Lookups in Python
In diesem Artikel werden das Konzept von DNS und DNS-Lookup erläutert. Danach besprechen wir die Methode für die DNS-Lookups mit Python.
Was ist DNS
Das DNS (Domain Name System) wandelt einen Domainnamen in eine öffentliche IP-Adresse um. Ein DNS-Server wandelt den Domänennamen einer beliebigen Website in die öffentliche IP des Hostservers dieser Website um.
DNS-Lookup
Ein DNS-Lookup ist ein Prozess, der das Auffinden der öffentlichen IP einer Website initiiert, wenn ein Benutzer auf den Domänennamen der Website trifft oder den Domänennamen gegen die öffentliche IP findet.
Die DNS-Suche hat zwei Arten:
-
DNS-Lookup weiterleiten
Forward DNS Lookup wird auch Forward DNS genannt. Es ist ein Prozess, der verwendet wird, um die öffentliche IP einer beliebigen Domäne zu finden, indem der Domänenname mithilfe eines DNS-Servers aufgelöst wird.
-
Reverse-DNS-Lookup
Reverse DNS Lookup funktioniert im Gegensatz zum Forward DNS Lookup. Es ist ein Prozess, der verwendet wird, um den Domänennamen anhand der öffentlichen IP-Adresse zu finden.
Befehl für die DNS-Suche
Der Befehl nslookup
findet die IP-Adresse oder das Domänennamensystem anhand eines Hostnamens. Zum Beispiel ist die Ausgabe von nslookup google.com
unten angegeben.
Der Befehl nslookup google.com
zeigt das Domain Name System und die öffentliche IP des Hosts google.com
an.
DNS-Lookups in Python
Mit dem folgenden Code können wir den Hostnamen oder die öffentliche IP einer beliebigen Domäne in Python finden.
import socket
ip_addr = socket.gethostbyname("www.google.com")
print(ip_addr)
Der Socket der Python-Bibliothek bietet verschiedene Funktionen und Methoden zum Entwickeln von netzwerkbasierten Anwendungen, einschließlich Server-Client-Programmen. Die Funktion gethostbyname
wird verwendet, um die öffentliche IP-Adresse eines beliebigen Hostnamens zu finden.
gethostbyname
gibt nur die IP-Adresse des Hostnamens zurück, ohne die konfigurierten Regeln des Betriebssystems zu berücksichtigen. Wir können jedoch die Hostnameninformationen mit allen konfigurierten Regeln des Betriebssystems finden.
Betrachten Sie den folgenden Code, der verwendet wird, um die Adressinformationen zu finden, ohne die konfigurierten Regeln des Betriebssystems zu ignorieren.
import socket
print(socket.getaddrinfo("www.google.com", 80))
Die Funktion getaddrinfo
der Socket-Bibliothek in Python wird verwendet, um die Informationen zum Hostnamen unter Berücksichtigung der vom Betriebssystem konfigurierten Regeln zu erhalten.
Die Funktion getaddrinfo
gibt eine Liste mit den 5 Elementen family
, socktype
, proto
und sockaddr
zurück.
family
, socktype
und proto
sind Ganzzahlen, die mit socket().canonname
verwendet werden können, einem String, der den kanonischen Namen des Hosts anzeigt sockaddr
ist ein Tupel mit zwei Elementen address und port.