Il problema sembra essere almeno duplice:
- Le risposte WHOIS non condividono uno schema comune e
- c'è una carenza di client WHOIS in grado di analizzare le risposte WHOIS e di mappare i loro campi (ad esempio utilizzando un'ontologia adatta) su un singolo schema. Il progetto Ruby Whois è lo sforzo più vasto che ho trovato. Ha lo scopo di fornire un parser per ciascuno degli oltre 500 diversi server WHOIS e i suoi sviluppatori meritano un immenso merito, ma rimane un work in progress.
Questo è un triste stato di cose.
La soluzione proposta da IETF per questo e altri problemi WHOIS si chiama Registration Data Access Protocol (RDAP).
Citando RFC 7485, che spiega la logica di RDAP:
Nello spazio dei nomi di dominio c'erano oltre 200 codici paese
Domini di primo livello (ccTLD) e oltre 400 domini di primo livello generici
(gTLD) quando questo documento è stato pubblicato. Nome di dominio diverso
I registri possono avere oggetti e formati di risposta WHOIS diversi. UN
la comprensione comune di tutti questi formati di dati era fondamentale per
costruire un singolo modello di dati per ogni oggetto.
(Enfasi mia.)
Sfortunatamente, mentre la maggior parte (tutti?) dei registri TLD fornisce server WHOIS per i propri sottodomini, solo uno due registri TLD hanno finora messo in campo formalmente server RDAP per i loro sottodomini:CZNIC per i domini .cz e NIC Argentina per i domini .ar. Quindi, questa non è (ancora) una soluzione generalmente applicabile in un'ampia gamma di TLD. Possiamo solo sperare che tutti gli altri registri si affrettino a mettere in campo i server RDAP.
Per quanto riguarda il software, l'unico client a riga di comando RDAP per sistemi POSIX che ho trovato finora è nicinfo
.
Puoi usare python
pip install whois
Ad esempio,
#!/bin/python
import whois
print whois.whois('www.facebook.com')['city']