Obtém campo (s) de dados WHOIS sem analisar?

4

Usando as ferramentas de linha de comando disponíveis em uma distribuição GNU / Linux comum (por exemplo, Fedora / Debian / Ubuntu / etc), existe uma maneira geral de obter o valor de algum campo WHOIS específico (por exemplo, o nome da organização do registrante)? sem ter que criar um analisador WHOIS personalizado que esteja codificado para lidar com as diferenças entre a saída de cada registro?

Isso parece valer a pena, porque a saída do comando whois não parece ser muito consistente. Por exemplo, compare:

$ whois trigger.io

[...]

Owner OrgName : Amir Nathoo

[...]

com:

$ whois facebook.com

[...]

Registrant Organization: Facebook, Inc.

[...]

Eu gostaria, em vez disso, de poder passar, como argumentos para algum comando:

  • o nome do domínio
  • o campo desejado

e ter a saída simplesmente o valor do campo desejado. Por exemplo, com base nos exemplos acima, algo como:

$ some_whois_command -field organization_name trigger.io
Amir Nathoo

$ some_whois_command -field organization_name facebook.com
Facebook, Inc.

Isso é possível?

Idealmente, gostaria que a solução se centralizasse no comando whois , por exemplo com algum uso adequado de -i , -q , -t e / ou -v , pois quero aprender como fazer uso efetivo dessas opções. No entanto, aceitarei outra solução como correta, se necessário.

    
por sampablokuper 04.02.2017 / 15:06

3 respostas

2

O problema parece ser pelo menos duplo:

  • As respostas do WHOIS não compartilham um esquema comum e
  • há uma escassez de clientes WHOIS capazes de analisar respostas WHOIS e mapear seus campos (por exemplo, usando uma ontologia adequada) em um único esquema. O projeto Ruby Whois é o esforço mais extenso que encontrei. Ele visa fornecer um analisador para cada um dos mais de 500 servidores WHOIS , e seus desenvolvedores merecem crédito imenso, mas continua sendo um trabalho em andamento.

Este é um estado lastimável de coisas.

A solução proposta da IETF para esse e outros problemas do WHOIS é chamada de Protocolo de Acesso a Dados de Registro (RDAP) .

Citando RFC 7485 , que explica a justificativa para o RDAP:

In the domain name space, there were over 200 country code
Top-Level Domains (ccTLDs) and over 400 generic Top-Level Domains
(gTLDs) when this document was published. Different Domain Name
Registries may have different WHOIS response objects and formats.
A
common understanding of all these data formats was critical to
construct a single data model for each object.

(ênfase minha)

Infelizmente, enquanto a maioria dos registros de TLDs fornece servidores WHOIS para seus subdomínios, apenas um Até agora, dois registros de TLDs enviaram formalmente servidores RDAP para seus subdomínios : CZNIC para domínios .cz e NIC Argentina para domínios .ar. Então, isso não é (ainda) uma solução geralmente aplicável em uma ampla gama de TLDs. Só podemos esperar que todos os outros registros se apressem e trabalhem com servidores RDAP.

Quanto ao software, o único cliente de linha de comando RDAP para sistemas POSIX que encontrei até agora é nicinfo .

    
por 05.02.2017 / 20:09
2

Você pode usar python

 pip install whois

Por exemplo,

#!/bin/python

import whois
print whois.whois('www.facebook.com')['city']
    
por 04.02.2017 / 16:12
-2

Em quais campos você está interessado em quais TLDs? Faça uma checagem rápida contra .com.net e .org os campos de dados reais têm o mesmo nome ... fácil o suficiente para whois foo.org | grep "Organização do registrante:" ou qualquer campo de seu interesse.

Se você precisa de um script, algo como

#!/bin/bash

if [ $# -ne 2 ]
then
  echo Usage:  $0 fieldcode domain
  exit
fi

case $1 in 
  "ro")
     whois $2 | grep "Registrant Organization:"
  ;;
  "te")
     whois $2 | grep "Tech Email:"
  ;;
esac

# or use simple if-thens
if [ $1 == "r" ]
then
  whois $2 | grep "Registrant "
fi

Que dá saída como

$ ./whoisg r myfqdn.org
Registrant ID: go2016965629
Registrant Name: Contact Privacy Inc. Customer 1241082755
Registrant Organization: Contact Privacy Inc. Customer 1241082755
Registrant Street: 96 Mowat Ave
Registrant City: Toronto
Registrant State/Province: ON
Registrant Postal Code: M4K 3K1
Registrant Country: CA
Registrant Phone: +1.4165385487
Registrant Phone Ext:
Registrant Fax:
Registrant Fax Ext:
Registrant Email: [email protected]

ou

$ ./whoisg te myfqdn.org
Tech Email: [email protected]

HTH

    
por 04.02.2017 / 20:15