El problema parece ser al menos doble:
- Las respuestas de WHOIS no comparten un esquema común y
- hay una escasez de clientes de WHOIS capaces de analizar las respuestas de WHOIS y mapear sus campos (p. ej., usando una ontología adecuada) en un solo esquema. El proyecto Ruby Whois es el esfuerzo más extenso que he encontrado. Su objetivo es proporcionar un analizador para cada uno de los más de 500 servidores de WHOIS diferentes, y sus desarrolladores merecen un gran crédito, pero sigue siendo un trabajo en progreso.
Este es un lamentable estado de cosas.
La solución propuesta por el IETF para este y otros problemas de WHOIS se denomina Protocolo de acceso a datos de registro (RDAP).
Citando RFC 7485, que explica el fundamento de RDAP:
En el espacio de nombres de dominio, había más de 200 códigos de países
Dominios de nivel superior (ccTLD) y más de 400 dominios de nivel superior genéricos
(gTLD) cuando se publicó este documento. Nombre de dominio diferente
Los registros pueden tener diferentes objetos y formatos de respuesta de WHOIS. A
la comprensión común de todos estos formatos de datos fue fundamental para
construya un único modelo de datos para cada objeto.
(Énfasis mío).
Lamentablemente, mientras que la mayoría (¿todos?) de los registros de TLD proporcionan servidores WHOIS para sus subdominios, solo uno Hasta ahora, dos registros de TLD han presentado formalmente servidores RDAP para sus subdominios:CZNIC para dominios .cz y NIC Argentina para dominios .ar. Por lo tanto, esta no es (todavía) una solución de aplicación general en una amplia gama de TLD. Solo podemos esperar que todos los demás registros se den prisa y coloquen servidores RDAP.
En cuanto al software, el único cliente de línea de comandos RDAP para sistemas POSIX que he encontrado hasta ahora es nicinfo
.
Puedes usar python
pip install whois
Por ejemplo,
#!/bin/python
import whois
print whois.whois('www.facebook.com')['city']