Búsquedas de DNS en Python
Este artículo discutirá el concepto de búsqueda de DNS y DNS. Después de esto, discutimos el método para las búsquedas de DNS usando Python.
¿Qué es DNS?
El DNS (Domain Name System) convierte un nombre de dominio en una dirección IP pública. Un servidor DNS convierte el nombre de dominio de cualquier sitio web en la IP pública del servidor host de ese sitio web.
Búsqueda de DNS
Una búsqueda de DNS es un proceso que se inicia para encontrar la IP pública de cualquier sitio web cada vez que un usuario accede al nombre de dominio del sitio web o encuentra el nombre de dominio en la IP pública.
La búsqueda de DNS tiene dos tipos:
-
Búsqueda directa de DNS
La búsqueda de DNS directo también se llama DNS directo. Es un proceso utilizado para encontrar la IP pública de cualquier dominio mediante la resolución del nombre de dominio mediante un servidor DNS.
-
Búsqueda inversa de DNS
La búsqueda inversa de DNS funciona a diferencia de la búsqueda directa de DNS. Es un proceso utilizado para encontrar el nombre de dominio contra la dirección IP pública.
Comando para búsqueda de DNS
El comando nslookup
encuentra la dirección IP o el sistema de nombres de dominio contra un nombre de host. Por ejemplo, el resultado nslookup google.com
se muestra a continuación.
El comando nslookup google.com
muestra el sistema de nombres de dominio y la IP pública del host google.com
.
Búsquedas de DNS en Python
Podemos encontrar el nombre de host o IP pública de cualquier dominio en Python usando el siguiente código.
import socket
ip_addr = socket.gethostbyname("www.google.com")
print(ip_addr)
El socket de la biblioteca de Python proporciona diferentes funciones y métodos para desarrollar aplicaciones basadas en la red, incluidos los programas de servidor-cliente. La función gethostbyname
se utiliza para encontrar la dirección IP pública de cualquier nombre de host.
El gethostbyname
solo devuelve la dirección IP del hostname sin considerar las reglas configuradas del sistema operativo. Sin embargo, podemos encontrar la información del nombre de host con todas las reglas configuradas del sistema operativo.
Considere el siguiente código utilizado para encontrar la información de la dirección sin ignorar las reglas configuradas del sistema operativo.
import socket
print(socket.getaddrinfo("www.google.com", 80))
La función getaddrinfo
de la biblioteca de sockets en Python se utiliza para obtener la información relacionada con el nombre de host teniendo en cuenta las reglas configuradas del sistema operativo.
La función getaddrinfo
devuelve una lista de 5 elementos familia
, tipo de calcetín
, proto
y dirección de calcetín
.
La familia
, tipo de calcetín
y proto
son números enteros que se pueden usar con socket().canonname
, una cadena que muestra el nombre canónico del host sockaddr
es una tupla con dos elementos dirección y puerto.