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

Les données sur le domaine sont collectées via RDAP (HTTP, JSON), WHOIS (port 43) ou la page web de l'opérateur — 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 une zone, la requête est effectuée via celui-ci en priorité, en cas d'erreur — sur le WHOIS, et si aucun des deux n'est disponible — via le web, lorsqu'une page existe.
L'ensemble des méthodes de vérification dépend de l'opérateur, et pas seulement du TLD. Certaines zones n'ont pas de WHOIS ou de RDAP, ou bien ils ne fonctionnent pas — c'est une décision de l'opérateur. La page web de vérification n'existe pas non plus pour tous : sa présence est également définie par l'opérateur. Si la page existe, le scraper récupère les données via celle-ci.
Il existe des zones où l'opérateur ne possède que le TLD, et les sites sont enregistrés sur un SLD (deuxième niveau, par exemple co.uk, org.uk). Le propriétaire du SLD peut être un ou plusieurs — mais ce n'est pas l'opérateur du TLD. L'ensemble des méthodes de vérification est alors défini par le propriétaire du SLD : WHOIS, RDAP, page web, une combinaison des deux — ou rien du tout.
La composition des champs dans le WHOIS et le RDAP peut également différer — en raison de la législation, de la politique de l'opérateur et des restrictions sur les données personnelles. Mais l'ensemble est globalement prévisible : enregistrement, dates, NS, registraire, statut.
Lors de la collecte via le web, il n'y a pas de standardisation. Il est toujours vérifié si le domaine est enregistré ou non. Le reste dépend de ce que l'opérateur affiche sur la page : il peut s'agir d'un ensemble presque complet, ou seulement du fait de l'enregistrement.
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
🔗 Sélection de données arbitraires
Net::Whois sélection de données arbitraires
🔗 Paramètres des domaines
Obtention des paramètres par domaines
🔗 Notification d'expiration des domaines
Recevoir des notifications dans Telegram concernant l'expiration de l'enregistrement des domaines
🔗 Collecte de base d'adresses e-mail
Le préréglage permet de collecter les adresses e-mail des domaines via le service Whois.
Données collectées
La liste ci-dessous est un ensemble typique pour WHOIS/RDAP ; les champs spécifiques dépendent de la réponse du serveur et des lois. Lors de la collecte via le web, seul le fait de l'enregistrement est garanti ; les autres champs sont remplis si l'opérateur les publie.
$registered— si le domaine est enregistré ou non$expire_date— date d'expiration de l'enregistrement du domaine$creation_date— date d'enregistrement du domaine$free_date— date de libération du domaine$whoisserver— serveur WHOIS utilisé (lors d'une requête WHOIS ; souvent vide pour RDAP)$rdapserver— URL du serveur RDAP (lors d'une requête RDAP réussie)$registrar— registraire du domaine$updated_date— date de la dernière mise à jour de l'enregistrement$data— réponse brute : texte WHOIS ou JSON RDAP- Tableau
$ns(Serveurs de noms) :$ns.$i.server— nom du serveur NS
- Tableau
$statuses(Liste des statuts) :$statuses.$i.status— statut du domaine
Possibilités
- Sélection automatique entre RDAP ou WHOIS selon la zone du domaine (priorité RDAP)
- Si la zone n'a pas de WHOIS/RDAP fonctionnel, mais dispose d'une page web de l'opérateur — la vérification se fait via celle-ci
- La composition des champs WHOIS/RDAP dépend de la réponse du serveur et de la législation
- Lors de la collecte via le web, l'existence du domaine est toujours vérifiée ; les autres champs sont remplis uniquement si l'opérateur les fournit
- Certaines zones (TLD et SLD) n'ont ni WHOIS/RDAP, ni page web — les données WHOIS sont indisponibles, mais l'existence du domaine est vérifiée via
Net::DNS - 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"
}]
Pour que les options "Prepend text" et "Append text" soient disponibles dans l'Éditeur de tâches, vous devez activer "More 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 Result Builders (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 Result Builders (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ètre | Valeur par défaut | Description |
|---|---|---|
| Recursive query | ☐ | Permet d'obtenir une version étendue du WHOIS |
| WHOIS server | Permet de définir votre propre serveur WHOIS | |
| RDAP server | Permet de définir votre propre serveur RDAP | |
| Checking by DNS | ☑ | Permet de vérifier si le domaine est enregistré en fonction de l'existence d'une IP pour le domaine |
| Checking domains by DNS record | ☑ | Vé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 domains | ☑ | Vérification forcée si le domaine a été identifié comme non enregistré |