Aller au contenu
Tutorial

API WHOIS : recherches de domaines structurées via RDAP en un seul POST

| 6 min read

Obtenez le bureau d'enregistrement, la date d'expiration, les serveurs de noms et les codes d'état pour n'importe quel domaine avec un seul appel API. JSON structuré à partir de RDAP ; pas d'analyse de texte.

Terminal window showing domain lookup results
Photo by Sai Kiran Anagani on Unsplash

Vous créez un outil de surveillance de domaine. Vous avez besoin du registraire, de la date d'expiration et des serveurs de noms pour chaque domaine de votre portefeuille. L'ancien protocole WHOIS vous donne du texte non structuré. Chaque le registraire le formate différemment. L'analyser signifie écrire des expressions régulières fragiles qui se cassent lorsqu'un le registraire change leur format de sortie.

RDAP (Registration Data Access Protocol) résout ce problème en renvoyant du JSON structuré. Mais chaque TLD a un serveur RDAP différent et vous devez interroger le registre d'amorçage IANA pour le trouver. Puis vous devez toujours normaliser la réponse car les implémentations RDAP varient selon les registres.

Le botoï /v1/whois le point de terminaison gère tout cela. Une requête POST, un JSON réponse, chaque TLD.

Le point final

curl -X POST https://api.botoi.com/v1/whois \\
  -H "Content-Type: application/json" \\
  -d '{ "domain": "stripe.com" }'

Réponse:

{
  "success": true,
  "data": {
    "domain": "stripe.com",
    "registrar": "SafeNames Ltd.",
    "status": [
      "client delete prohibited",
      "client transfer prohibited",
      "client update prohibited",
      "server delete prohibited",
      "server transfer prohibited",
      "server update prohibited"
    ],
    "created": "1995-09-12T04:00:00Z",
    "updated": "2024-06-18T10:22:31Z",
    "expires": "2032-09-11T04:00:00Z",
    "nameservers": [
      "ns-cloud-d1.googledomains.com",
      "ns-cloud-d2.googledomains.com",
      "ns-cloud-d3.googledomains.com",
      "ns-cloud-d4.googledomains.com"
    ]
  }
}

Six champs couvrent 90 % de ce dont vous avez besoin du WHOIS : le nom du registraire, les codes de statut du domaine, date de création, dernière mise à jour, date d'expiration et serveurs de noms. Toutes les dates sont ISO 8601. Toutes les serveurs de noms sont en minuscules. Aucune analyse requise.

Texte WHOIS brut ou réponse API structurée

Voici ce que renvoie le protocole WHOIS brut pour le même domaine. C'est le texte que vous obtiendriez un whois stripe.com commande:

Domain Name: STRIPE.COM
Registry Domain ID: 609783_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.safenames.net
Registrar URL: http://www.safenames.net
Updated Date: 2024-06-18T10:22:31Z
Creation Date: 1995-09-12T04:00:00Z
Registry Expiry Date: 2032-09-11T04:00:00Z
Registrar: SafeNames Ltd.
Registrar IANA ID: 447
Registrar Abuse Contact Email: abuse@safenames.net
Registrar Abuse Contact Phone: +44.1onal234567
Domain Status: clientDeleteProhibited
Domain Status: clientTransferProhibited
Domain Status: clientUpdateProhibited
Domain Status: serverDeleteProhibited
Domain Status: serverTransferProhibited
Domain Status: serverUpdateProhibited
Name Server: NS-CLOUD-D1.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D2.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D3.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D4.GOOGLEDOMAINS.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form:
   https://www.icann.org/wicf/
>>> Last update of whois database: 2026-03-29T10:00:00Z <<<

C'est un mur de texte sans format standard. Les noms des champs, l'espacement et l'ordre changent entre les bureaux d'enregistrement. Verisign formate les dates dans un sens. Nominet les formate un autre. Certains les bureaux d'enregistrement incluent le nom et l'adresse du titulaire. D’autres caviardent tout sous le RGPD boucliers de confidentialité.

La réponse de l'API vous fournit les mêmes données dans une structure prévisible. Vous accédez data.expires au lieu d'écrire une expression régulière pour "Date d'expiration du registre :". Vous itérez data.nameservers au lieu de rechercher les lignes commençant par « Name Server : ».

Créer un moniteur d'expiration de domaine

Perdre un domaine parce que quelqu'un a oublié de le renouveler est coûteux et embarrassant. Ce Node.js Le script vérifie une liste de domaines et signale ceux qui expirent dans les 30 jours. Exécutez-le quotidiennement avec un tâche cron ou workflow planifié GitHub Actions.

Le script parcourt votre liste de domaines, vérifie chacun d'entre eux et collecte les domaines expirant. dans les 30 jours. Le sendAlert la fonction publie sur Slack. Échangez-le contre PagerDuty, e-mail ou tout point de terminaison de webhook.

Vous pouvez étendre cela de plusieurs manières : stocker les résultats dans une base de données pour suivre les tendances d'expiration, ajouter un Seuil de 60 et 90 jours pour les alertes à plusieurs niveaux, ou référence croisée des serveurs de noms à détecter modifications DNS non autorisées.

Comprendre les codes d'état du domaine

La status tableau dans la réponse vous indique quelles opérations le registre et le registraire autorise sur le domaine. Voici une référence pour les codes les plus courants :

Les domaines avec « transfert de serveur interdit » et « suppression de serveur interdite » ont un niveau de registre serrures. Ces verrous sont plus puissants que les verrous au niveau client, car seul l'opérateur de registre peut les supprimer. eux. Domaines de grande valeur comme stripe.com et google.com avoir les deux couches.

Si vous voyez « en attente de suppression » ou « période de rachat » dans le statut d'un domaine, agissez rapidement. Le domaine est soit sur le point d'être libéré, soit peut être restauré moyennant des frais par l'intermédiaire du registraire.

Quand utiliser ce point de terminaison

  • Suivi du portefeuille de domaines. Suivez les dates d’expiration sur des centaines de domaines. Alertez votre équipe avant l'expiration d'un domaine.
  • Enquête de phishing. Vérifiez quand un domaine suspect a été enregistré. Les domaines de phishing sont souvent créés des heures ou des jours avant une attaque.
  • Qualification des dirigeants. Un domaine créé en 2003 suggère une entreprise établie entreprise. Un domaine enregistré la semaine dernière raconte une histoire différente.
  • Détection des changements DNS. Comparez les serveurs de noms actuels à une référence connue. Un changement de serveur de noms que vous n'avez pas autorisé pourrait entraîner un piratage de domaine.
  • Conformité et diligence raisonnable. Vérifier les détails de propriété du domaine lors du fournisseur d'intégration ou de due diligence M&A. Le registraire et les codes de statut révèlent le domaine posture de sécurité.

Points clés

  • POST /v1/whois renvoie le bureau d'enregistrement, les dates, les codes d'état et les serveurs de noms dans JSON normalisé.
  • Le point de terminaison interroge les serveurs RDAP, et non l'ancien protocole de texte WHOIS. Vous obtenez des données structurées sans écrire d'analyseurs.
  • L'accès anonyme fonctionne à 5 requêtes par minute sans clé API. Les forfaits payants suppriment cette limite.
  • La réponse comprend un expires champ dans ISO 8601. Utilisez-le pour créer l'expiration moniteurs, pipelines d’alertes ou tableaux de bord de domaine.

FAQ

Quelle est la différence entre WHOIS et RDAP ?
WHOIS est le protocole hérité de 1982. Il renvoie du texte brut non structuré sans format standard entre les bureaux d'enregistrement. RDAP (Registration Data Access Protocol) est le remplacement standardisé par l'IETF qui renvoie du JSON structuré. Le point de terminaison botoi /v1/whois interroge les serveurs RDAP et renvoie une réponse JSON normalisée.
L'API de recherche WHOIS est-elle gratuite ?
Oui. L'accès anonyme ne nécessite aucune clé API et autorise 5 requêtes par minute plus 100 par jour. Les forfaits payants commencent à 9 $/mois pour des limites tarifaires plus élevées.
Quels TLD l'API prend-elle en charge ?
L'API interroge le registre d'amorçage RDAP, qui couvre .com, .net, .org, .io, .dev, .app, .co et la plupart des gTLD. Certains TLD nationaux (ccTLD) ont une couverture RDAP limitée et peuvent renvoyer des données partielles.
Pourquoi les champs de contact du propriétaire sont-ils absents de la réponse ?
La plupart des bureaux d'enregistrement appliquent par défaut une protection de la vie privée conforme au RGPD. Les coordonnées (nom, email, adresse) sont expurgées au niveau du registre. L'API renvoie ce que fournit le serveur RDAP : le bureau d'enregistrement, les dates, les codes d'état et les serveurs de noms sont toujours disponibles.
Puis-je rechercher des données WHOIS pour une adresse IP au lieu d'un domaine ?
Ce point de terminaison gère uniquement le WHOIS du domaine. Pour les données de propriété d'adresse IP (ASN, organisation du réseau, plage CIDR), utilisez le point de terminaison /v1/ip-whois/lookup.

Commencez a construire avec botoi

150+ endpoints API pour la recherche, le traitement de texte, la generation d'images et les utilitaires pour developpeurs. Offre gratuite, sans carte bancaire.