Ir al contenido principal

Net::Whois - El extractor verifica datos de dominio a través de RDAP y WHOIS

Resumen del extractor

Resumen del extractor

Los datos del dominio se recopilan a través de RDAP (HTTP, JSON) o WHOIS (puerto 43), dependiendo de la zona de dominio. Para cada TLD, el extractor tiene definidos servidores RDAP y WHOIS; si RDAP está disponible para la zona, la consulta se realiza a través de él en primer lugar, y en caso de error, a través de WHOIS.

Más información: RDAP (inglés), WHOIS.

La funcionalidad de A-Parser permite guardar la configuración de extracción de datos para su uso posterior (ajustes preestablecidos), establecer programas de extracción y mucho más. Puede utilizar la multiplicación automática de consultas, la sustitución de subconsultas desde archivos, el escaneo de combinaciones alfanuméricas y listas para obtener la mayor cantidad posible de resultados.

El guardado de resultados es posible en la forma y estructura que necesite, gracias al potente motor de plantillas integrado Template Toolkit que permite aplicar lógica adicional a los resultados y exportar datos en varios formatos, incluyendo JSON, SQL y CSV.

Casos de uso del extractor

Datos recopilados

  • Si el dominio está registrado o no
  • Fecha de vencimiento del registro del dominio
  • Cuándo se registró el dominio
  • Fecha de la última actualización del registro
  • URL del servidor RDAP — en caso de una consulta RDAP exitosa
  • Servidor WHOIS utilizado — en consultas WHOIS; a menudo vacío en RDAP
  • Lista de servidores de nombres (NS) del dominio
  • Registrador del dominio
  • Estado actual del dominio
  • Fecha de liberación del dominio
  • Respuesta sin procesar — texto WHOIS o JSON RDAP

Posibilidades

  • Selección automática de RDAP o WHOIS según la zona de dominio (prioridad RDAP)
  • Se admite el trabajo con dominios internacionales (IDN, por ejemplo яндекс.рф)

Casos de uso

  • Recopilación de dominios libres o que se liberarán pronto
  • Recopilación de una lista de servidores NS
  • Obtención de estados de dominios

Consultas

Como consultas, es necesario indicar el dominio del sitio buscado, por ejemplo:

a-parser.com  
yandex.ru
google.com
vk.com
facebook.com

Opciones de salida de resultados

A-Parser admite un formateo flexible de resultados gracias al motor de plantillas integrado Template Toolkit, lo que le permite mostrar los resultados en forma libre, así como estructurada, por ejemplo CSV o JSON

Salida por defecto

Formato de resultado:

$query - registered: $registered, expire: $expire_date, creation: $creation_date

Como resultado se muestra el dominio, si está registrado, la fecha de vencimiento y la fecha de registro del dominio:

facebook.com - registered: 1, expire: 30.03.2028, creation: 29.03.1997
a-parser.com - registered: 1, expire: 25.02.2022, creation: 25.02.2012
vk.com - registered: 1, expire: 23.06.2021, creation: 24.06.1997
yandex.ru - registered: 1, expire: 01.10.2021, creation: 23.09.1997
google.com - registered: 1, expire: 14.09.2028, creation: 15.09.1997

Salida de lista de NS

Formato de resultado:

$ns.format('$server\n')

Ejemplo de resultado:

demi.ns.cloudflare.com
vern.ns.cloudflare.com

Salida de datos sobre plazos de dominio en CSV

Formato de resultado:

[% tools.CSVline(query, registered, expire_date, creation_date, updated_date, free_date, whoisserver, rdapserver, registrar) %]

Ejemplo de resultado (dominio .com, respuesta a través de RDAP — whoisserver vacío, rdapserver completado):

a-parser.com,1,25.02.2027,25.02.2012,10.02.2026,none,,https://rdap.verisign.com/com/v1/domain/a-parser.com,"Squarespace Domains II LLC"

Salida de lista de NS en tabla CSV

Formato de resultado:

[% FOREACH ns;
tools.CSVline(query, server);
END %]

Ejemplo de resultado:

a-parser.com,demi.ns.cloudflare.com
a-parser.com,vern.ns.cloudflare.com

Volcado de resultados en JSON

Formato general del resultado:

[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;

obj = {};
obj.query = query;
obj.registered = p1.registered;
obj.expire_date = p1.expire_date;
obj.creation_date = p1.creation_date;
obj.updated_date = p1.updated_date;
obj.free_date = p1.free_date;
obj.whoisserver = p1.whoisserver;
obj.rdapserver = p1.rdapserver;
obj.registrar = p1.registrar;
obj.domains = [];

FOREACH item IN p1.ns;
obj.domains.push({
server = item.server
});
END;

obj.json %]

Texto inicial:

[

Texto final:

]

Ejemplo de resultado (RDAP):

[{
"registered": 1,
"rdapserver":"https://rdap.verisign.com/com/v1/domain/a-parser.com",
"query":"a-parser.com",
"free_date":"none",
"domains":[
{
"server":"demi.ns.cloudflare.com"
},
{
"server":"vern.ns.cloudflare.com"
}
],
"registrar":"Squarespace Domains II LLC",
"expire_date":"25.02.2027",
"creation_date":"25.02.2012",
"whoisserver":"",
"updated_date":"10.02.2026"
}]
sugerencia

Para que las opciones "Texto inicial" y "Texto final" estén disponibles en el Editor de tareas, debe activar "Más opciones".

Procesamiento de resultados

A-Parser permite procesar los resultados directamente durante la extracción de datos; en esta sección presentamos los casos más populares para el extractor Net::Whois

Obtención del registrador del dominio

Al responder a través de WHOIS, el campo $p1.data contiene texto; con RDAP, contiene JSON. Para obtener el registrador en ambos casos, añada dos Constructores de resultados.

Añadir un Results Builder (Constructor de resultados) y en la lista desplegable seleccionar la fuente: $p1.data. Seleccionar el tipo: RegEx Match. En el campo Expresión regular escribir: Registrar:\s*(.+) y guardar en la variable registrarwhois.

Añadir de nuevo un Results Builder (Constructor de resultados) y en la lista desplegable seleccionar la fuente: $p1.data. Seleccionar el tipo: RegEx Match. En el campo Expresión regular escribir: "entities"[\s\S]+?"vcardArray"[\s\S]+?"fn"[\s\S]+?"text"[\s\S]+?"([^"]+?)" y guardar en la variable registrarrdap.

Añadir al Result format (Formato de resultado): [% IF registrarrdap == 'none' %]$query - $registrarwhois[% ELSE %]$query - $registrarrdap[% END %] — si RDAP no encontró el nombre (registrarrdap es igual a none), se muestra el valor de WHOIS, de lo contrario, el de RDAP.

Descargar ejemplo

Cómo importar un ejemplo en A-Parser

eJyVVNtO20AQ/RVrFEQoJioPfbGEqkATiSpNKAH1wU6lVTxJt6x3ze46EEX5987Y
jh1TpKpP9lzPmdvuYIPWSaMhugzBC/fk7iw69A6ieAd5+Q8RWFxL562wEEIurKMg
cohhij6Kfvwy0pEhxZUolIdwB36bI4UZym5limSUKckrYzPhKWnpBhuhCnaLT4Lb
cdBg2FTkwdVVcKqNxtPgZNF7LtBug4ug1/i8MCbFjSbz0fsenIUdpl/InmjYLxYh
VNBuXPIg5F5+OaiLbIxzscEHw2ylwlY9JmkqMubbS4VHtg6qgvpnA//KGUSaSk/d
FKpC4Ca1qI9aPnO9K6EchsCUJbqxNRnl9FhmKOs40IuhqgsoR1EGf69imhyOuI4F
MUnfWqRHK7yxs5wJkX4HRg+VmuAGleuQ2F4XUqU00uGKgm7rwPddZn/l2Df1HUPR
4F8scWiylNL17FsblZqJWTd2JTPpSeFuTKGp9o8hPCHmh57B1FB3MmOxQakDa3Ba
2xw1L1k7smHeqjpVdMZypNyBM4VdEl5M+DRlwa2vl5k2C1/L5PyN4P6waVGSuA/9
wfnZwfhQBZDoDU+xu7Ww2If/BZQAak97hS6BmLCSZL44/5zAZilsOrRWbLv6le7K
vFpdTT/+mQD9nSXwT858R0SZ6C2NXsn1rL7pQxML/UDPxkzfmCxXyBPXhVK0sA7v
28sZunpBWWhn9zb4poQgHs1bQnSMcl/nFbfcSmL3iTlntGPHqHXKpVDq8X5ybOFA
500+0yNr3yx2eTIgLqpHbbCkW2wvs6TKRS7p3teGDpEk7kT9BDZP5Y7W+be7q7Qc
Vur2fwBx19yZ

Configuraciones posibles

ParámetroValor por defectoDescripción
Recursive queryPermite obtener una versión extendida de WHOIS
WHOIS serverPermite definir su propio servidor WHOIS
RDAP serverPermite definir su propio servidor RDAP
Checking by DNSPermite verificar si el dominio está registrado basándose en la existencia de una IP para el dominio
Checking domains by DNS recordVerificación de IP; si encuentra el estado ALLOCATED, determina el dominio como registrado; si la opción está desactivada, no se realiza ninguna verificación de IP
Force DNS check for not found domainsVerificación forzada si el dominio fue determinado como no registrado