Passer au contenu principal

Net::Whois - Le scraper vérifie les données de domaine via RDAP et WHOIS

Présentation du scraper

Présentation du scraper

Les données de domaine sont collectées via RDAP (HTTP, JSON) ou WHOIS (port 43) — selon la zone de domaine. Pour chaque TLD, des serveurs RDAP et WHOIS sont définis dans le scraper ; si le RDAP est disponible pour la zone, la requête est effectuée via celui-ci en priorité, et en cas d'échec — via WHOIS.

En savoir plus : RDAP (angl.), WHOIS.

Les fonctionnalités d'A-Parser permettent de sauvegarder les paramètres de collecte de données pour une utilisation ultérieure (présélections), de définir des programmes de collecte et bien plus encore. Vous pouvez utiliser la multiplication automatique des requêtes, la substitution de sous-requêtes à partir de fichiers, l'énumération de combinaisons alphanumériques et de listes pour obtenir le maximum de résultats possible.

La sauvegarde des résultats est possible dans le format et la structure dont vous avez besoin, grâce au puissant moteur de gabarits intégré Template Toolkit qui permet d'appliquer une logique supplémentaire aux résultats et d'exporter les données dans divers formats, y compris JSON, SQL et CSV.

Cas d'utilisation du scraper

Données collectées

  • Si le domaine est enregistré ou non
  • Date d'expiration de l'enregistrement du domaine
  • Date d'enregistrement du domaine
  • Date de la dernière mise à jour de l'enregistrement
  • URL du serveur RDAP — en cas de requête RDAP réussie
  • Serveur WHOIS utilisé — pour les requêtes WHOIS ; souvent vide pour RDAP
  • Liste des serveurs de noms (NS) du domaine
  • Registraire du domaine
  • Statut actuel du domaine
  • Date de libération du domaine
  • Réponse brute — texte WHOIS ou JSON RDAP

Possibilités

  • Sélection automatique entre RDAP ou WHOIS selon la zone du domaine (priorité RDAP)
  • Prise en charge des domaines internationaux (IDN, par exemple яндекс.рф)

Cas d'utilisation

  • Collecte de domaines libres ou de ceux qui seront bientôt libérés
  • Collecte de la liste des serveurs NS
  • Obtention des statuts de domaines

Requêtes

Comme requêtes, il est nécessaire d'indiquer le domaine du site recherché, par exemple :

a-parser.com  
yandex.ru
google.com
vk.com
facebook.com

Variantes d'affichage des résultats

A-Parser prend en charge un formatage flexible des résultats grâce au moteur de gabarits intégré Template Toolkit, ce qui lui permet d'afficher les résultats sous n'importe quelle forme, ainsi que de manière structurée, par exemple en CSV ou JSON

Affichage par défaut

Format du résultat :

$query - registered: $registered, expire: $expire_date, creation: $creation_date

Le résultat affiche le domaine, s'il est enregistré, la date d'expiration et la date d'enregistrement du domaine :

facebook.com - registered: 1, expire: 30.03.2028, creation: 29.03.1997
a-parser.com - registered: 1, expire: 25.02.2022, creation: 25.02.2012
vk.com - registered: 1, expire: 23.06.2021, creation: 24.06.1997
yandex.ru - registered: 1, expire: 01.10.2021, creation: 23.09.1997
google.com - registered: 1, expire: 14.09.2028, creation: 15.09.1997

Affichage de la liste des NS

Format du résultat :

$ns.format('$server\n')

Exemple de résultat :

demi.ns.cloudflare.com
vern.ns.cloudflare.com

Affichage des données sur les délais du domaine en CSV

Format du résultat :

[% tools.CSVline(query, registered, expire_date, creation_date, updated_date, free_date, whoisserver, rdapserver, registrar) %]

Exemple de résultat (domaine .com, réponse via RDAP — whoisserver est vide, rdapserver est rempli) :

a-parser.com,1,25.02.2027,25.02.2012,10.02.2026,none,,https://rdap.verisign.com/com/v1/domain/a-parser.com,"Squarespace Domains II LLC"

Affichage de la liste des NS dans un tableau CSV

Format du résultat :

[% FOREACH ns;
tools.CSVline(query, server);
END %]

Exemple de résultat :

a-parser.com,demi.ns.cloudflare.com
a-parser.com,vern.ns.cloudflare.com

Dump des résultats en JSON

Format de sortie general:

[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;

obj = {};
obj.query = query;
obj.registered = p1.registered;
obj.expire_date = p1.expire_date;
obj.creation_date = p1.creation_date;
obj.updated_date = p1.updated_date;
obj.free_date = p1.free_date;
obj.whoisserver = p1.whoisserver;
obj.rdapserver = p1.rdapserver;
obj.registrar = p1.registrar;
obj.domains = [];

FOREACH item IN p1.ns;
obj.domains.push({
server = item.server
});
END;

obj.json %]

Texte initial:

[

Texte final:

]

Exemple de résultat (RDAP) :

[{
"registered": 1,
"rdapserver":"https://rdap.verisign.com/com/v1/domain/a-parser.com",
"query":"a-parser.com",
"free_date":"none",
"domains":[
{
"server":"demi.ns.cloudflare.com"
},
{
"server":"vern.ns.cloudflare.com"
}
],
"registrar":"Squarespace Domains II LLC",
"expire_date":"25.02.2027",
"creation_date":"25.02.2012",
"whoisserver":"",
"updated_date":"10.02.2026"
}]
astuce

Pour que les options "Texte initial" et "Texte final" soient disponibles dans l'Éditeur de tâches, vous devez activer "Plus d'options".

Traitement des résultats

A-Parser permet de traiter les résultats directement pendant la collecte de données, dans cette section nous avons présenté les cas les plus populaires pour le scraper Net::Whois

Obtenir le registraire du domaine

Lors d'une réponse via WHOIS, le champ $p1.data contient du texte ; avec RDAP, il contient du JSON. Pour obtenir le registraire dans les deux cas, ajoutez deux Constructeurs de résultats.

Ajouter un Results Builder (Constructeur de résultats) et dans la liste déroulante choisir la source : $p1.data. Choisir le type : RegEx Match. Dans le champ Expression régulière, inscrire : Registrar:\s*(.+) et sauvegarder dans la variable registrarwhois.

Ajouter à nouveau un Results Builder (Constructeur de résultats) et dans la liste déroulante choisir la source : $p1.data. Choisir le type : RegEx Match. Dans le champ Expression régulière, inscrire : "entities"[\s\S]+?"vcardArray"[\s\S]+?"fn"[\s\S]+?"text"[\s\S]+?"([^"]+?)" et sauvegarder dans la variable registrarrdap.

Ajouter dans le Result format (Format du résultat) : [% IF registrarrdap == 'none' %]$query - $registrarwhois[% ELSE %]$query - $registrarrdap[% END %] — si RDAP n'a pas trouvé de nom (registrarrdap est égal à none), la valeur de WHOIS est affichée, sinon celle de RDAP.

Télécharger l'exemple

Comment importer l'exemple dans A-Parser

eJyVVNtO20AQ/RVrFEQoJioPfbGEqkATiSpNKAH1wU6lVTxJt6x3ze46EEX5987Y
jh1TpKpP9lzPmdvuYIPWSaMhugzBC/fk7iw69A6ieAd5+Q8RWFxL562wEEIurKMg
cohhij6Kfvwy0pEhxZUolIdwB36bI4UZym5limSUKckrYzPhKWnpBhuhCnaLT4Lb
cdBg2FTkwdVVcKqNxtPgZNF7LtBug4ug1/i8MCbFjSbz0fsenIUdpl/InmjYLxYh
VNBuXPIg5F5+OaiLbIxzscEHw2ylwlY9JmkqMubbS4VHtg6qgvpnA//KGUSaSk/d
FKpC4Ca1qI9aPnO9K6EchsCUJbqxNRnl9FhmKOs40IuhqgsoR1EGf69imhyOuI4F
MUnfWqRHK7yxs5wJkX4HRg+VmuAGleuQ2F4XUqU00uGKgm7rwPddZn/l2Df1HUPR
4F8scWiylNL17FsblZqJWTd2JTPpSeFuTKGp9o8hPCHmh57B1FB3MmOxQakDa3Ba
2xw1L1k7smHeqjpVdMZypNyBM4VdEl5M+DRlwa2vl5k2C1/L5PyN4P6waVGSuA/9
wfnZwfhQBZDoDU+xu7Ww2If/BZQAak97hS6BmLCSZL44/5zAZilsOrRWbLv6le7K
vFpdTT/+mQD9nSXwT858R0SZ6C2NXsn1rL7pQxML/UDPxkzfmCxXyBPXhVK0sA7v
28sZunpBWWhn9zb4poQgHs1bQnSMcl/nFbfcSmL3iTlntGPHqHXKpVDq8X5ybOFA
500+0yNr3yx2eTIgLqpHbbCkW2wvs6TKRS7p3teGDpEk7kT9BDZP5Y7W+be7q7Qc
Vur2fwBx19yZ

Paramètres possibles

ParamètreValeur par défautDescription
Recursive queryPermet d'obtenir une version étendue du WHOIS
WHOIS serverPermet de définir votre propre serveur WHOIS
RDAP serverPermet de définir votre propre serveur RDAP
Checking by DNSPermet de vérifier si le domaine est enregistré en fonction de l'existence d'une IP pour le domaine
Checking domains by DNS recordVérification de l'IP, s'il trouve le statut ALLOCATED, il définit le domaine comme enregistré, si l'option est désactivée, la vérification de l'IP n'a pas lieu du tout
Force DNS check for not found domainsVérification forcée si le domaine a été identifié comme non enregistré