Zdá se, že problém je přinejmenším dvojí:
- Odpovědi WHOIS nemají společné schéma a
- existuje nedostatek klientů WHOIS schopných analyzovat odpovědi WHOIS a mapovat svá pole (např. pomocí vhodné ontologie) do jediného schématu. Projekt Ruby Whois je nejrozsáhlejší úsilí, které jsem našel. Jeho cílem je poskytnout analyzátor pro každý z více než 500 různých serverů WHOIS a jeho vývojáři si zaslouží nesmírné uznání, ale stále se na něm pracuje.
Toto je žalostný stav.
Řešení tohoto a dalších problémů WHOIS navržené IETF se nazývá Registration Data Access Protocol (RDAP).
Cituji RFC 7485, který vysvětluje důvody pro RDAP:
V prostoru pro názvy domén bylo více než 200 kódů zemí
Domény nejvyšší úrovně (ccTLD) a více než 400 generických domén nejvyšší úrovně
(gTLD), kdy byl tento dokument publikován. Jiný název domény
Registry mohou mít různé objekty a formáty odpovědí WHOIS. A
společné porozumění všem těmto datovým formátům bylo zásadní
vytvořit jeden datový model pro každý objekt.
(Zdůrazněte můj.)
Bohužel, zatímco většina (všech?) registrů TLD poskytuje servery WHOIS pro své subdomény, pouze jeden dva registry TLD zatím formálně zřídily servery RDAP pro své subdomény:CZNIC pro domény .cz a NIC Argentina pro domény .ar. Toto tedy (zatím) není obecně použitelné řešení pro širokou škálu TLD. Můžeme jen doufat, že všechny ostatní registry si pospíší a nasadí RDAP servery.
Pokud jde o software, jediný klient příkazového řádku RDAP pro systémy POSIX, který jsem zatím našel, je nicinfo
.
Můžete použít python
pip install whois
Například
#!/bin/python
import whois
print whois.whois('www.facebook.com')['city']