• Email: contact@refbax.com

Comment connaître les DNS d’un site avec python ?

Temps de lecture : < 1 minute

Pour connaître les DNS (Domain Name System) d’un site Web en Python, vous pouvez utiliser la bibliothèque dnspython et la fonction query.

Tout d’abord, il faut utiliser une bibliothèque qui permet de réaliser des requêtes DNS (Domain Name System). Une option possible est la bibliothèque dnspython. Pour l’installer, exécutez cette commande :

pip install dnspython

Voici un exemple de code qui montre comment faire pour connaître les DNS :

import dns.resolver

def get_dns_records(domain):
    resolver = dns.resolver.Resolver()
    response = resolver.query(domain)
    return [record.to_text() for record in response]

# Exemples d'utilisation
print(get_dns_records("google.com"))  # ["172.217.167.206", "172.217.167.174"]
print(get_dns_records("example.com"))  # ["93.184.216.34"]
print(get_dns_records("nonexistent.com"))  # []

La fonction query de dnspython envoie une requête DNS pour obtenir les enregistrements du type A (adresses IP) associés au domaine donné. Si des enregistrements du type A sont trouvés, la fonction retourne une liste d’objets dns.rdtypes.ANY.A.A, et vous pouvez utiliser la méthode to_text de chaque objet pour obtenir l’adresse IP sous forme de chaîne de caractères. Si aucun enregistrement du type A n’est trouvé, la fonction retourne une liste vide.

Notez que la fonction query de dnspython peut également être utilisée pour obtenir d’autres types d’enregistrements DNS, comme les enregistrements du type MX (serveurs de messagerie) ou du type NS (serveurs de noms). Vous pouvez utiliser la constante dns.rdatatype.MX ou dns.rdatatype.NS en tant que second argument de la fonction query pour obtenir ces types d’enregistrements. Par exemple :

import dns.resolver

def get_mx_records(domain):
    resolver = dns.resolver.Resolver()
    response = resolver.query(domain, dns.rdatatype.MX)
    return [record.to_text() for record in response]

# Exemples d'utilisation
print(get_mx_records("google.com"))  # ["30 alt3.aspmx.l.google.com.", "20 alt2.aspmx.l.google.com.", "10 alt1.aspmx.l.google.com.", "40 alt4.aspmx.l.google.com.", "50 alt5.aspmx.l.google.com."]
print(get_mx_records("example.com"))  # ["10 mail.example.com."]
Facebook
Twitter
LinkedIn

Leave a Comment

Ces articles peuvent aussi vous intérresser

Enfilez-votre cape

Créer un compte dès maintenant pour commencer à utiliser nos outils

Premier site alliant formation / Actualité et les offres d’emplois autour des métiers du digital. Des outils pour vous aider dans vos campagnes de content marketing ou de SEO.
Premier site alliant formation / Actualité et les offres d’emplois autour des métiers du digital. Des outils pour vous aider dans vos campagnes de content marketing ou de SEO.
Contact Us