Le problème semble être au moins double :
- Les réponses WHOIS ne partagent pas un schéma commun, et
- il y a une pénurie de clients WHOIS capables d'analyser les réponses WHOIS et de mapper leurs champs (par exemple en utilisant une ontologie appropriée) sur un schéma unique. Le projet Ruby Whois est l'effort le plus étendu que j'ai trouvé. Il vise à fournir un analyseur pour chacun des plus de 500 serveurs WHOIS différents, et ses développeurs méritent un immense crédit, mais cela reste un travail en cours.
C'est une triste situation.
La solution proposée par l'IETF pour ce problème et d'autres problèmes WHOIS s'appelle le protocole d'accès aux données d'enregistrement (RDAP).
Citant la RFC 7485, qui explique la raison d'être de RDAP :
Dans l'espace des noms de domaine, il y avait plus de 200 codes de pays
Domaines de premier niveau (ccTLD) et plus de 400 domaines génériques de premier niveau
(gTLD) lors de la publication de ce document. Nom de domaine différent
Les registres peuvent avoir différents objets et formats de réponse WHOIS. UN
une compréhension commune de tous ces formats de données était essentielle pour
construire un modèle de données unique pour chaque objet.
(C'est moi qui souligne.)
Malheureusement, alors que la plupart (tous ?) Les registres TLD fournissent des serveurs WHOIS pour leurs sous-domaines, seulement un deux registres TLD ont jusqu'à présent officiellement mis en service des serveurs RDAP pour leurs sous-domaines :CZNIC pour les domaines .cz et NIC Argentina pour les domaines .ar. Il ne s'agit donc pas (encore) d'une solution généralement applicable à un large éventail de TLD. Nous ne pouvons qu'espérer que tous les autres registres se dépêcheront et mettront en service les serveurs RDAP.
En ce qui concerne les logiciels, le seul client de ligne de commande RDAP pour les systèmes POSIX que j'ai trouvé jusqu'à présent est nicinfo
.
Vous pouvez utiliser python
pip install whois
Par exemple,
#!/bin/python
import whois
print whois.whois('www.facebook.com')['city']