Búsquedas de DNS en Python

Dr. Muhammad Abdullah 21 junio 2023
  1. ¿Qué es DNS?
  2. Búsqueda de DNS
  3. Búsquedas de DNS en Python
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:

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

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

nslookup

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.