Programación de redes en Python: búsqueda de DNS

El sistema de nombres de dominio, también conocido como DNS , es una guía telefónica de Internet que se relaciona con el nombre de dominio. DNS traduce los nombres de dominio a la dirección IP respectiva para que los navegadores puedan acceder a los recursos. Python proporciona un módulo DNS que se usa para manejar esta traducción de nombres de dominio a direcciones IP.

Búsqueda de registros

El módulo dnspython proporciona dns.resolver() ayuda a encontrar varios registros de un nombre de dominio. La función toma dos parámetros importantes, el nombre de dominio y el tipo de registro. Algunos de los tipos de registro con ejemplos se enumeran a continuación:

  • Un registro: es un tipo fundamental de registro DNS, aquí A significa dirección. Muestra la dirección IP del dominio.

Python3

# Import libraries
import dns.resolver
  
# Finding A record
result = dns.resolver.query('geeksforgeeks.org', 'A')
  
# Printing record
for val in result:
    print('A Record : ', val.to_text())

Producción:

A Record :  34.218.62.116
  • Registro AAAA: Este es un registro de dirección IP, utilizado para encontrar la IP de la computadora conectada al dominio. Es conceptualmente similar al registro A, pero especifica solo la dirección IPv6 del servidor en lugar de IPv4.

Python3

# Import libraries
import dns.resolver
  
# Finding AAAA record
result = dns.resolver.query('geeksforgeeks.org', 'AAAA')
  
# Printing record
for val in result:
    print('AAAA Record : ', ipval.to_text())

Producción:

Sin respuesta: la respuesta de DNS no contiene una respuesta a la pregunta: geeksforgeeks.org. EN AAAA

  • Registro PTR: PTR significa registro de puntero, utilizado para traducir direcciones IP al nombre de dominio o nombre de host. Se utiliza para invertir la búsqueda de DNS.

Python3

# Import libraries
import dns.resolver
  
# Finding PTR record
result = dns.resolver.query('116.62.218.34.in-addr.arpa', 'PTR')
  
# Printing record
for val in result:
    print('PTR Record : ', val.to_text())

Producción:

Registro PTR: ec2-34-218-62-116.us-west-2.compute.amazonaws.com.

  • Registro NS: el registro del servidor de nombres (NS) brinda información sobre qué servidor tiene autoridad para el dominio dado, es decir, qué servidor tiene los registros DNS reales. Múltiples registros NS son posibles para un dominio, incluidos los servidores de nombres principal y de respaldo.

Python3

# Import libraries
import dns.resolver
  
# Finding NS record
result = dns.resolver.query('geeksforgeeks.org', 'NS')
  
# Printing record
for val in result:
    print('NS Record : ', val.to_text())

Producción:

NS Record :  ns-1520.awsdns-62.org.
NS Record :  ns-1569.awsdns-04.co.uk.
NS Record :  ns-245.awsdns-30.com.
NS Record :  ns-869.awsdns-44.net.
  • MX Records: MX significa registro de Mail Exchanger, que es un registro de recursos que especifica el servidor de correo responsable de aceptar correos electrónicos en nombre del dominio. Tiene valores de preferencia de acuerdo con el correo de prioridad si hay varios servidores de correo presentes para equilibrar la carga y la redundancia.

Python3

# Import libraries
import dns.resolver
  
# Finding MX record
result = dns.resolver.query('geeksforgeeks.org', 'MX')
  
# Printing record
for val in result:
    print('MX Record : ', val.to_text())

Producción:

MX Record :  1 aspmx.l.google.com.
MX Record :  10 alt3.aspmx.l.google.com.
MX Record :  10 alt4.aspmx.l.google.com.
MX Record :  5 alt1.aspmx.l.google.com.
MX Record :  5 alt2.aspmx.l.google.com.
  • Registros SOA: SOA significa registros de inicio de autoridad, que es un tipo de registro de recursos que contiene información sobre la administración de la zona, especialmente relacionada con las transferencias de zona definidas por el administrador de la zona.

Python3

# Import libraries
import dns.resolver
  
# Finding SOA record
result = dns.resolver.query('geeksforgeeks.org', 'SOA')
  
# Printing record
for val in result:
    print('SOA Record : ', val.to_text())

Producción:

Registro SOA: ns-869.awsdns-44.net. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

  • Registro CNAME: CNAME significa registro de nombre canónico, que se utiliza para asignar el nombre de dominio como un alias para el otro dominio. Siempre apunta a otro dominio y nunca apunta directamente a una IP.

Python3

# Import libraries
import dns.resolver
  
# Finding CNAME record
result = dns.resolver.query('geeksforgeeks.org', 'CNAME')
  
# Printing record
for val in result:
    print('CNAME Record : ', val.target)

Producción:

Sin respuesta: la respuesta de DNS no contiene una respuesta a la pregunta: geeksforgeeks.org. EN CNOMBRE

  • Registro TXT: Estos registros contienen la información de texto de las fuentes que están fuera del dominio. Los registros TXT se pueden usar para varios propósitos, como que Google los use para verificar la propiedad del dominio y garantizar la seguridad del correo electrónico.

Python3

# Import libraries
import dns.resolver
  
# Finding TXT record
result = dns.resolver.query('geeksforgeeks.org', 'TXT')
  
# Printing record
for val in result:
    print('TXT Record : ', val.to_text())

Producción:

Registro TXT: “fob1m1abcdp777bf2ncvnjm08n”
Registro TXT: “v=spf1 include:amazonses.com include:_spf.google.com ip4:167.89.66.115 -all”

Publicación traducida automáticamente

Artículo escrito por jeeteshgavande30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *