Pular para o conteúdo
Tutorial

API WHOIS: pesquisas de domínio estruturadas via RDAP em um POST

| 6 min read

Obtenha registrador, data de validade, servidores de nomes e códigos de status para qualquer domínio com uma chamada de API. JSON estruturado de RDAP; sem análise de texto.

Terminal window showing domain lookup results
Photo by Sai Kiran Anagani on Unsplash

Você está construindo uma ferramenta de monitoramento de domínio. Você precisa do registrador, da data de validade e dos servidores de nomes para cada domínio do seu portfólio. O antigo protocolo WHOIS fornece texto não estruturado. Cada registrador o formata de maneira diferente. Analisá-lo significa escrever expressões regulares frágeis que quebram quando um registrador altera seu formato de saída.

O RDAP (Registration Data Access Protocol) resolve isso retornando JSON estruturado. Mas cada TLD tem um servidor RDAP diferente e você precisa consultar o registro de inicialização da IANA para encontrá-lo. Então você ainda precisa normalizar a resposta porque as implementações de RDAP variam entre os registros.

O botoi /v1/whois endpoint lida com tudo isso. Uma solicitação POST, um JSON resposta, cada TLD.

O ponto final

curl -X POST https://api.botoi.com/v1/whois \\
  -H "Content-Type: application/json" \\
  -d '{ "domain": "stripe.com" }'

Resposta:

{
  "success": true,
  "data": {
    "domain": "stripe.com",
    "registrar": "SafeNames Ltd.",
    "status": [
      "client delete prohibited",
      "client transfer prohibited",
      "client update prohibited",
      "server delete prohibited",
      "server transfer prohibited",
      "server update prohibited"
    ],
    "created": "1995-09-12T04:00:00Z",
    "updated": "2024-06-18T10:22:31Z",
    "expires": "2032-09-11T04:00:00Z",
    "nameservers": [
      "ns-cloud-d1.googledomains.com",
      "ns-cloud-d2.googledomains.com",
      "ns-cloud-d3.googledomains.com",
      "ns-cloud-d4.googledomains.com"
    ]
  }
}

Seis campos cobrem 90% do que você precisa do WHOIS: o nome do registrador, códigos de status do domínio, data de criação, última atualização, data de expiração e servidores de nomes. Todas as datas são ISO 8601. Todas servidores de nomes estão em letras minúsculas. Nenhuma análise necessária.

Texto WHOIS bruto versus resposta estruturada da API

Aqui está o que o protocolo WHOIS bruto retorna para o mesmo domínio. Este é o texto que você obteria um whois stripe.com comando:

Domain Name: STRIPE.COM
Registry Domain ID: 609783_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.safenames.net
Registrar URL: http://www.safenames.net
Updated Date: 2024-06-18T10:22:31Z
Creation Date: 1995-09-12T04:00:00Z
Registry Expiry Date: 2032-09-11T04:00:00Z
Registrar: SafeNames Ltd.
Registrar IANA ID: 447
Registrar Abuse Contact Email: abuse@safenames.net
Registrar Abuse Contact Phone: +44.1onal234567
Domain Status: clientDeleteProhibited
Domain Status: clientTransferProhibited
Domain Status: clientUpdateProhibited
Domain Status: serverDeleteProhibited
Domain Status: serverTransferProhibited
Domain Status: serverUpdateProhibited
Name Server: NS-CLOUD-D1.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D2.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D3.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D4.GOOGLEDOMAINS.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form:
   https://www.icann.org/wicf/
>>> Last update of whois database: 2026-03-29T10:00:00Z <<<

É uma parede de texto sem formato padrão. Os nomes dos campos, espaçamento e alteração de ordem entre registradores. A Verisign formata as datas de uma maneira. Nominet os formata de outra forma. Alguns os registradores incluem o nome e o endereço do registrante. Outros editam tudo de acordo com o GDPR escudos de privacidade.

A resposta da API fornece os mesmos dados em uma estrutura previsível. Você acessa data.expires em vez de escrever um regex para "Data de expiração do registro:". Você itera data.nameservers em vez de procurar linhas começando com "Name Server:".

Crie um monitor de expiração de domínio

Perder um domínio porque alguém se esqueceu de renová-lo é caro e constrangedor. Este Node.js O script verifica uma lista de domínios e sinaliza aqueles que expiram em 30 dias. Execute-o diariamente com um cron job ou fluxo de trabalho agendado do GitHub Actions.

O script percorre sua lista de domínios, verifica cada um e coleta domínios expirados dentro de 30 dias. O sendAlert postagens de função no Slack. Troque por PagerDuty, email ou qualquer endpoint de webhook.

Você pode estender isso de algumas maneiras: armazenar resultados em um banco de dados para rastrear tendências de vencimento, adicionar um Limite de 60 e 90 dias para alertas em camadas ou faça referência cruzada dos servidores de nomes para detectar alterações não autorizadas de DNS.

Noções básicas sobre códigos de status de domínio

O status array na resposta informa quais operações o registro e permitido pelo registrador no domínio. Aqui está uma referência para os códigos mais comuns:

Domínios com "transferência de servidor proibida" e "exclusão de servidor proibida" têm nível de registro fechaduras. Eles são mais fortes que os bloqueios no nível do cliente porque somente o operador de registro pode remover eles. Domínios de alto valor como stripe.com e google.com tenha ambos camadas.

Se você vir “exclusão pendente” ou “período de resgate” no status de um domínio, aja rapidamente. O domínio é prestes a ser liberado ou pode ser restaurado mediante o pagamento de uma taxa através do registrador.

Quando usar este endpoint

  • Monitoramento de portfólio de domínio. Acompanhe as datas de expiração em centenas de domínios. Alerte sua equipe antes que qualquer domínio expire.
  • Investigação de phishing. Verifique quando um domínio suspeito foi registrado. Os domínios de phishing geralmente são criados horas ou dias antes de um ataque.
  • Qualificação de leads. Um domínio criado em 2003 sugere um estabelecimento empresa. Um domínio registrado na semana passada conta uma história diferente.
  • Detecção de alterações de DNS. Compare os servidores de nomes atuais com uma linha de base conhecida. Uma alteração no servidor de nomes que você não autorizou pode significar um sequestro de domínio.
  • Conformidade e due diligence. Verifique os detalhes de propriedade do domínio durante o fornecedor due diligence de integração ou fusões e aquisições. O registrador e os códigos de status revelam o domínio postura de segurança.

Pontos-chave

  • POST /v1/whois retorna registrador, datas, códigos de status e servidores de nomes em JSON normalizado.
  • O endpoint consulta servidores RDAP, não o protocolo de texto WHOIS herdado. Você obtém dados estruturados sem escrever analisadores.
  • O acesso anônimo funciona a 5 solicitações por minuto sem chave de API. Os planos pagos removem esse limite.
  • A resposta inclui uma expires campo na ISO 8601. Use-o para criar expiração monitores, pipelines de alerta ou painéis de domínio.

FAQ

Qual é a diferença entre WHOIS e RDAP?
WHOIS é o protocolo legado de 1982. Ele retorna texto simples não estruturado, sem formato padrão entre registradores. RDAP (Registration Data Access Protocol) é o substituto padronizado pela IETF que retorna JSON estruturado. O endpoint botoi /v1/whois consulta servidores RDAP e retorna uma resposta JSON normalizada.
A API de pesquisa WHOIS é gratuita?
Sim. O acesso anônimo não requer chave de API e permite 5 solicitações por minuto mais 100 por dia. Os planos pagos começam em US$ 9/mês para limites de taxas mais altos.
Quais TLDs a API suporta?
A API consulta o registro de inicialização RDAP, que abrange .com, .net, .org, .io, .dev, .app, .co e a maioria dos gTLDs. Alguns TLDs com código de país (ccTLDs) têm cobertura RDAP limitada e podem retornar dados parciais.
Por que os campos de contato do proprietário estão faltando na resposta?
A maioria dos registradores aplica proteção de privacidade compatível com GDPR por padrão. Os detalhes de contato (nome, e-mail, endereço) são editados no nível do registro. A API retorna o que o servidor RDAP fornece: registrador, datas, códigos de status e servidores de nomes estão sempre disponíveis.
Posso procurar dados WHOIS para um endereço IP em vez de um domínio?
Este endpoint lida apenas com WHOIS de domínio. Para dados de propriedade de endereço IP (ASN, organização de rede, intervalo CIDR), use o endpoint /v1/ip-whois/lookup.

Comece a construir com botoi

150+ endpoints de API para consultas, processamento de texto, geração de imagens e utilitários para desenvolvedores. Plano gratuito, sem cartão de crédito.