Python - Ricerca DNS

Gli indirizzi IP quando vengono tradotti in formati o parole leggibili dall'uomo diventano noti come nomi di dominio. La traduzione dei nomi di dominio in indirizzi IP è gestita dal modulo pythondnspythonQuesto modulo fornisce anche metodi per trovare record CNAME e MX.

Trovare record "A"

Nel programma sottostante troviamo l'indirizzo ip del dominio utilizzando il metodo dns.resolver. Di solito questa mappatura tra indirizzo IP e nome di dominio è nota anche come record "A".

import dnspython as dns
import dns.resolver
result = dns.resolver.query('tutorialspoint.com', 'A')
for ipval in result:
    print('IP', ipval.to_text())

Quando eseguiamo il programma sopra, otteniamo il seguente output:

('IP', u'94.130.81.180')

Trovare il valore CNAME

Un record CNAME noto anche come Canonical Name Record è un tipo di record nel Domain Name System (DNS) utilizzato per mappare un nome di dominio come alias per un altro dominio. I record CNAME puntano sempre a un altro nome di dominio e mai direttamente a un indirizzo IP. Nel metodo di query seguente specifichiamo il parametro CNAME per ottenere il valore CNAME.

import dnspython as dns
import dns.resolver
result = dns.resolver.query('mail.google.com', 'CNAME')
for cnameval in result:
    print ' cname target address:', cnameval.target

Quando eseguiamo il programma sopra, otteniamo il seguente output:

cname target address: googlemail.l.google.com.

Trovare il record MX

Un record MX chiamato anche record di scambio di posta è un record di risorse nel Domain Name System che specifica un server di posta responsabile dell'accettazione dei messaggi di posta elettronica per conto del dominio di un destinatario. Inoltre, imposta il valore di preferenza utilizzato per assegnare la priorità al recapito della posta se sono disponibili più server di posta. Analogamente ai programmi precedenti, possiamo trovare il valore per il record MX utilizzando il parametro "MX" nel metodo di query.

result = dns.resolver.query('mail.google.com', 'MX')
for exdata in result:
    print ' MX Record:', exdata.exchange.text()

Quando eseguiamo il programma sopra, otteniamo il seguente output:

MX Record:	ASPMX.L.GOOGLE.COM.
MX Record:	ALT1.ASPMX.L.GOOGLE.COM.
MX Record:	ALT2.ASPMX.L.GOOGLE.COM.

Quanto sopra è un output di esempio e non quello esatto.