Comment obtenir des informations sur les noms de domaine en Python

Apprenez à valider les noms de domaine en utilisant WHOIS, ainsi qu’à obtenir des informations sur le nom de domaine telles que l’enregistrement de domaine, la date de création, la date d’expiration et plus dans Python.

Un nom de domaine est une chaîne identifiant un domaine réseau; il représente une ressource IP, comme un serveur hébergeant un site Web ou simplement un ordinateur accédant à Internet.

En termes simples, ce que nous connaissons sous le nom de domaine, c’est l’adresse de votre site web que les gens tapent dans l’URL du navigateur à visiter.

Dans ce tutoriel, nous utiliserons la bibliothèque whois de Python pour valider les noms de domaine et récupérer diverses informations de domaine telles que la date de création et d’expiration, le bureau d’enregistrement du domaine, l’adresse et le pays du propriétaire, et plus encore.

Si vous voulez extraire des informations DNS sur un domaine particulier, alors ce tutoriel est pour vous.

Pour commencer, installons la bibliothèque :

pip3 install python-whois

WHOIS est un protocole de requête et de réponse qui est souvent utilisé pour interroger les bases de données qui stockent des noms de domaine enregistrés. Il stocke et fournit le contenu dans un format lisible par l’homme. whois library se contente de demander un serveur WHOIS directement au lieu de passer par un service Web intermédiaire.

Il y a aussi une simple commande de whois dans Linux pour extraire des informations de domaine, mais puisque nous sommes des développeurs Python, alors nous utiliserons Python pour ça.

Validation des noms de domaine

Dans cette section, nous utiliserons whois pour dire si un nom de domaine existe et est enregistré, la fonction ci-dessous le fait:

import whois # pip install python-whois

def is_registered(domain_name):
    """
    A function that returns a boolean indicating 
    whether a `domain_name` is registered
    """
    try:
        w = whois.whois(domain_name)
    except Exception:
        return False
    else:
        return bool(w.domain_name)

whois.whois()fonction augmente une exception pour les domaines qui n’existent pas et peuvent revenir sans soulever d’exception même si le domaine n’est pas enregistré, c’est pourquoi nous vérifions si domain_nameExiste, testons cette fonction:

# list of registered & non registered domains to test our function
domains = [
    "thepythoncode.com",
    "google.com",
    "github.com",
    "unknownrandomdomain.com",
    "notregistered.co"
]
# iterate over domains
for domain in domains:
    print(domain, "is registered" if is_registered(domain) else "is not registered")

Nous avons défini des domaines connus et d’autres qui n’existent pas. Voici la sortie:

thepythoncode.com is registered
google.com is registered
github.com is registered
unknownrandomdomain.com is not registered
notregistered.co is not registered

Génial, dans la section suivante, nous verrons comment obtenir diverses informations utiles sur les noms de domaine.

Obtenir le domaine WHOIS Informations

Il est assez simple d’utiliser cette bibliothèque, nous passons juste le nom de domaine au whois.whois()fonction:

import whois

# test with Google domain name
domain_name = "google.com"
if is_registered(domain_name):
    whois_info = whois.whois(domain_name)

Maintenant, pour obtenir l’enregistrement de domaine (l’entreprise qui gère la réservation de noms de domaine), nous accédons simplement à l’officier d’enregistrement:

    # print the registrar
    print("Domain registrar:", whois_info.registrar)

Obtenir le serveur WHOIS:

    # print the WHOIS server
    print("WHOIS server:", whois_info.whois_server)

Création et date d’expiration du domaine:

    # get the creation time
    print("Domain creation date:", whois_info.creation_date)
    # get expiration date
    print("Expiration date:", whois_info.expiration_date)

Produit:

Domain registrar: MarkMonitor Inc.
WHOIS server: whois.markmonitor.com        
Domain creation date: 1997-09-15 04:00:00  
Expiration date: 2028-09-14 04:00:00 

Pour voir d’autres informations WHOIS telles que serveurs de noms, pays, ville, État, adresse, etc., il suffit d’imprimer whois_info:

    # print all other info
    print(whois_info)

Conclusion

Là, vous l’avez. Vous venez d’apprendre le moyen le plus simple et le plus rapide d’obtenir des informations sur le nom de domaine en Python. Vérifiez le dépôt de Python-whois Github.

Souhaitez-vous en savoir plus sur le piratage éthique et la construction d’outils pour vous protéger contre les cybermenaces? Notre éthicale avec Python Ebook est la ressource parfaite pour vous. Ce guide complet couvre la construction d’outils dans divers domaines, y compris la collecte d’informations, les logiciels malveillants et la manipulation de paquets de réseau. Vous apprendrez comment construire des outils comme une coque inverse, des outils de fissuration de mot de passe, et bien d’autres (plus de 35 outils de test de plumage).

Avec des instructions pas à pas et des explications claires, cet EBook est parfait pour les débutants et les professionnels expérimentés qui cherchent à développer leurs connaissances dans le domaine du piratage éthique avec Python.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *