Das Problem scheint mindestens zweifach zu sein:
- WHOIS-Antworten haben kein gemeinsames Schema und
- Es gibt einen Mangel an WHOIS-Clients, die in der Lage sind, WHOIS-Antworten zu parsen und ihre Felder (z. B. unter Verwendung einer geeigneten Ontologie) auf ein einziges Schema abzubilden. Das Ruby Whois-Projekt ist die umfangreichste Anstrengung, die ich gefunden habe. Es zielt darauf ab, einen Parser für jeden der mehr als 500 verschiedenen WHOIS-Server bereitzustellen, und seine Entwickler verdienen immense Anerkennung, aber es ist noch in Arbeit.
Das ist ein trauriger Zustand.
Die von der IETF vorgeschlagene Lösung für dieses und andere WHOIS-Probleme heißt Registration Data Access Protocol (RDAP).
Zitieren von RFC 7485, das die Gründe für RDAP erklärt:
Im Domainnamensraum gab es über 200 Ländercodes
Top-Level-Domains (ccTLDs) und über 400 generische Top-Level-Domains
(gTLDs) zum Zeitpunkt der Veröffentlichung dieses Dokuments. Anderer Domänenname
Register können unterschiedliche WHOIS-Antwortobjekte und -Formate haben. EIN
Ein gemeinsames Verständnis all dieser Datenformate war entscheidend
Erstellen Sie ein einzelnes Datenmodell für jedes Objekt.
(Hervorhebung von mir.)
Während die meisten (alle?) TLD-Registrierungsstellen WHOIS-Server für ihre Subdomains bereitstellen, stellen leider nur einen zur Verfügung Zwei TLD-Registrierungsstellen haben bisher offiziell RDAP-Server für ihre Subdomains eingerichtet:CZNIC für .cz-Domains und NIC Argentina für .ar-Domains. Dies ist also (noch) keine allgemeingültige Lösung für eine Vielzahl von TLDs. Wir können nur hoffen, dass sich alle anderen Registries beeilen und RDAP-Server einsetzen.
Was die Software betrifft, ist der einzige RDAP-Befehlszeilenclient für POSIX-Systeme, den ich bisher gefunden habe, nicinfo
.
Sie können Python verwenden
pip install whois
Zum Beispiel
#!/bin/python
import whois
print whois.whois('www.facebook.com')['city']