DNS-Lookups in Python

Dr. Muhammad Abdullah 21 Juni 2023
  1. Was ist DNS
  2. DNS-Lookup
  3. DNS-Lookups in Python
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:

  1. 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.

  2. 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.

nslookup

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.