Percio Castelo.
EN Início
RDAP registro.br: Como Consultar Domínio e IP via API e curl
← Voltar para blog

RDAP registro.br: Como Consultar Domínio e IP via API e curl

14/06/2026 · 6 min · Cibersegurança · 299 visualizações

Por mais de três décadas, o protocolo WHOIS (especificado pela RFC 3912) atuou como o principal diretório público para pesquisa de informações sobre proprietários de domínios, servidores de nomes (DNS), blocos de endereçamento IP e números de Sistemas Autônomos (ASN). Operando de forma extremamente simples na Porta TCP 43, o WHOIS tradicional retorna blocos de texto puro desestruturados. Isso dificulta o parsing automatizado por scripts, carece de internacionalização robusta, não oferece autenticação nativa e colide diretamente com regulamentos modernos de privacidade de dados, como a LGPD (Lei Geral de Proteção de Dados) no Brasil e o GDPR na União Europeia.

Para solucionar essas deficiências de engenharia de rede, surgiu o RDAP (Registration Data Access Protocol), normatizado por um conjunto de RFCs do IETF (especialmente as RFCs 7480 a 7485). O RDAP padroniza as consultas sobre recursos da Internet utilizando chamadas RESTful puras sob o protocolo HTTPS, entregando payloads estruturados no formato JSON.

Neste guia técnico, apresento a arquitetura completa da API RDAP da Registro.BR, os endpoints de resposta direta para domínios, IPs e ASNs, exemplos práticos de consumo com curl e jq no terminal Linux, além de automações prontas para monitoramento contínuo.


1. Referência rápida: endpoints da API rdap.registro.br#

A Registro.BR, entidade responsável pelo registro e manutenção de domínios .br no Brasil, disponibiliza o serviço de RDAP em produção sob o servidor base oficial:

A tabela abaixo sintetiza a sintaxe exata para cada tipo de consulta suportada pela API:

Recurso DesejadoSintaxe do Endpoint HTTPExemplo Direto com curl
Domínio .br/domain/{nome-do-dominio.br}curl -s https://rdap.registro.br/domain/nic.br | jq
Endereço IPv4/ip/{endereco-ipv4}curl -s https://rdap.registro.br/ip/200.160.2.3 | jq
Bloco IPv6/ip/{prefixo-ipv6}curl -s https://rdap.registro.br/ip/2001:12ff::/32 | jq
Sistema Autônomo (ASN)/autnum/{numero-asn}curl -s https://rdap.registro.br/autnum/22548 | jq
Entidade Administrativa/entity/{handle-entidade}curl -s https://rdap.registro.br/entity/P1 | jq
Entidade Jurídica (CNPJ)/entity/{cnpj-sanitizado}curl -s https://rdap.registro.br/entity/05506560000136 | jq

2. Como consultar domínios no rdap.registro.br/domain#

Para inspecionar qualquer domínio registrado sob o ccTLD .br, realize uma requisição HTTP GET para o caminho /domain/ concatenado ao nome completo do domínio:

# Consultar o domínio oficial do NIC.br
curl -s https://rdap.registro.br/domain/nic.br | jq .

Consultando com registro.br#

# Consultar o domínio do próprio Registro.br
curl -s https://rdap.registro.br/domain/registro.br | jq .

Exemplo de payload JSON retornado pela Registro.BR#

Abaixo está o trecho estruturado do payload recebido:

{
  "objectClassName": "domain",
  "handle": "nic.br",
  "ldhName": "nic.br",
  "status": [
    "active"
  ],
  "nameservers": [
    {
      "objectClassName": "nameserver",
      "ldhName": "a.dns.br",
      "events": [
        {
          "eventAction": "delegation check",
          "eventDate": "2026-06-14T08:04:16Z",
          "status": ["ns aa"]
        }
      ]
    }
  ],
  "events": [
    {
      "eventAction": "registration",
      "eventDate": "1997-04-14T00:00:00Z"
    },
    {
      "eventAction": "expiration",
      "eventDate": "2028-12-31T00:00:00Z"
    }
  ],
  "entities": [
    {
      "objectClassName": "entity",
      "handle": "05506560000136",
      "roles": ["registrant"]
    }
  ]
}

Como extrair apenas os Nameservers (DNS)#

curl -sf https://rdap.registro.br/domain/nic.br | jq -r '.nameservers[]?.ldhName'

Como extrair a data de expiração#

curl -sf https://rdap.registro.br/domain/nic.br | \
  jq -r '.events[]? | select(.eventAction=="expiration") | .eventDate'

3. Como consultar endereços IP no rdap.registro.br/ip#

O endpoint /ip/ permite obter detalhes de alocação de blocos e endereços IPv4 ou IPv6 delegados ao Registro.br pelo LACNIC:

Consulta de endereço IPv4 (Exemplo: bloco 200.160.x.x)#

O bloco 200.160.0.0/16 pertence à infraestrutura central do NIC.br em São Paulo:

# Consultar informações de alocação do IP 200.160.2.3
curl -s https://rdap.registro.br/ip/200.160.2.3 | jq .

Extraindo o titular da alocação do IP com jq#

curl -sf https://rdap.registro.br/ip/200.160.2.3 | \
  jq '{handle: .handle, name: .name, cidr: .cidr0_cidrs, pais: .country}'

Consulta de bloco IPv6#

# Consultar prefixo IPv6 alocado
curl -s https://rdap.registro.br/ip/2001:12ff::/32 | jq '{range: .handle, status: .status}'

4. Como consultar Sistemas Autônomos (ASN) no rdap.registro.br/autnum#

Para identificar o proprietário e as faixas de roteamento BGP de um ASN no Brasil, utilize o endpoint /autnum/ seguido do número do ASN:

# Consultar o ASN 22548 (NIC.br)
curl -s https://rdap.registro.br/autnum/22548 | jq .

Extraindo nome da organização e status do ASN#

curl -sf https://rdap.registro.br/autnum/22548 | \
  jq '{asn: .handle, nome: .name, entidade: .entities[0].handle}'

5. As 10 vantagens arquiteturais do RDAP sobre o WHOIS#

A transição global do WHOIS para o RDAP é motivada por melhorias técnicas fundamentais em sua pilha de protocolos:

  1. Respostas Estruturadas (JSON): Em vez de tratar textos planos com formatos imprevisíveis que mudam de acordo com o registrador, o RDAP retorna um objeto JSON estritamente estruturado, permitindo parsing instantâneo em qualquer linguagem de programação.
  2. Eficiência e Velocidade: As transações e trocas de dados entre os servidores de registro e os clientes de consulta ocorrem de forma otimizada na camada de aplicação HTTPS.
  3. Cache de Consultas: Por rodar sobre HTTPS, o RDAP suporta nativamente headers de cache web comuns (como Cache-Control, Expires e ETag), otimizando o tráfego dos servidores de registro e reduzindo drasticamente o tempo de resposta para consultas idênticas repetidas.
  4. Menor Latência: Graças ao suporte a conexões persistentes HTTP/2 e HTTP/3 e cache inteligente, a latência de ponta a ponta na entrega das informações é expressivamente reduzida.
  5. Autenticação e Autorização: Diferente do WHOIS (que é puramente público), o RDAP suporta autenticação via tokens ou credenciais federadas, possibilitando que registradores exibam dados completos apenas para autoridades ou usuários autorizados, bloqueando acessos não autenticados.
  6. Internacionalização Concreta (IDN): Suporte total a nomes de domínios internacionalizados (IDN) e codificação de caracteres não-ASCII (como UTF-8), essencial para registros em múltiplos idiomas e alfabetos.
  7. Suporte a Informações Detalhadas: O JSON do RDAP estrutura claramente eventos e datas cruciais (criação, expiração, checagens de delegação de DNS), status de proteção de domínio e contatos técnicos ou administrativos organizados em cartões padrão vCard.
  8. Integração Simplificada de Ferramentas: A serialização JSON simplifica a ingestão de dados de registro em ferramentas automatizadas de Threat Intelligence, monitoramento de marcas e auditorias periódicas de DNS de infraestrutura.
  9. Capacidade de Paginação: Permite listar e navegar de forma paginada por grandes conjuntos de dados resultantes de consultas abrangentes, prevenindo estouros de buffer e uso excessivo de largura de banda.
  10. Conformidade com Leis de Privacidade (GDPR/LGPD): O RDAP foi desenhado para mascarar ou omitir dados confidenciais de contato de pessoas físicas de forma padronizada, exibindo apenas dados corporativos ou campos genéricos quando exigido pela regulação local.

Comparação visual: WHOIS vs. RDAP#

Saída WHOIS tradicional (texto plano desestruturado na porta 43):#

% Copyright (c)nic.br
domain:      nic.br
owner:       NIC.br - Núcleo de Informação e Coordenação do Ponto BR
created:     1997-04-14
expired:     2028-12-31
status:      published

Saída RDAP moderna (JSON padronizado via HTTPS na porta 443):#

{
  "objectClassName": "domain",
  "ldhName": "nic.br",
  "status": ["active"],
  "events": [
    {"eventAction": "registration", "eventDate": "1997-04-14T00:00:00Z"},
    {"eventAction": "expiration", "eventDate": "2028-12-31T00:00:00Z"}
  ]
}

6. Automação no Linux com rate limiting#

Ao automatizar checagens de domínios ou IPs em rotinas de sysadmin e segurança, é fundamental incluir controle de taxa para respeitar as políticas do servidor da Registro.BR:

monitor_rdap.sh — Script Bash para monitoramento em lote de expiração
ColabGistVer código
#!/bin/bash
# monitor_rdap.sh - Verificação segura em lote de expiração com controle de taxa

if [ "$#" -eq 0 ]; then
  echo "❌ Erro: Nenhum domínio informado para consulta." >&2
  echo "Uso: $0 <dominio1.com.br> [dominio2.com.br ...]" >&2
  exit 1
fi

DOMAINS=("$@")
ALERT_DAYS=30

for domain in "${DOMAINS[@]}"; do
  RESPONSE=$(curl -sf "https://rdap.registro.br/domain/$domain")
  
  if [ $? -eq 0 ] && [ -n "$RESPONSE" ]; then
    EXPIRY=$(echo "$RESPONSE" | jq -r '.events[]? | select(.eventAction=="expiration") | .eventDate')
    
    if [ -n "$EXPIRY" ]; then
      EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s)
      NOW_EPOCH=$(date +%s)
      DAYS_LEFT=$(( ($EXPIRY_EPOCH - $NOW_EPOCH) / 86400 ))
      
      if [ "$DAYS_LEFT" -le "$ALERT_DAYS" ]; then
        echo "⚠️  ALERTA: $domain expira em $DAYS_LEFT dias ($EXPIRY)"
      else
        echo "✅ $domain: OK ($DAYS_LEFT dias restantes)"
      fi
    fi
  else
    echo "❌ Erro ao consultar $domain"
  fi
  
  # Intervalo de cortesia para respeitar as políticas de rate limit
  sleep 1
done

7. Consultas internacionais via bootstrap IANA#

Para a consulta de domínios internacionais fora da raiz nacional .br (como .com, .net, .org ou novos gTLDs), o servidor de RDAP recomendado é o mantido pela IANA (Internet Assigned Numbers Authority):

  • Servidor Base IANA: https://rdap.iana.org/

O servidor da IANA atua como um roteador central de requisições, fazendo o redirecionamento automático (bootstrap) para o servidor RDAP específico do TLD ou do registrador final responsável pelo recurso pesquisado:

# Consultar domínio internacional via bootstrap da IANA
curl -sL "https://rdap.iana.org/domain/example.com" | jq .

8. Perguntas frequentes sobre o RDAP registro.br (FAQ)#

O que é o endpoint rdap.registro.br/domain?#

É a rota REST oficial da Registro.BR para consultar dados públicos de qualquer domínio brasileiro registrado sob o ccTLD .br. A requisição deve ser feita via método HTTP GET no formato https://rdap.registro.br/domain/{nome-do-dominio.br} e retorna um objeto JSON contendo status, datas de registro e expiração, nameservers e identificador do titular.

Como consultar endereço IP no RDAP do Registro.br?#

Basta enviar uma requisição GET para https://rdap.registro.br/ip/{endereco-ip}. O servidor responde com o bloco CIDR alocado, a entidade responsável e os registros de delegação no Brasil (ex: curl -s https://rdap.registro.br/ip/200.160.2.3 | jq .).

O RDAP da Registro.BR exige chave de API ou autenticação?#

Não. Para consultas básicas de domínios públicos, blocos IP e ASNs nacionais, o servidor da Registro.BR opera de forma aberta e sem necessidade de tokens de autenticação ou chaves de API.

Qual é a diferença fundamental entre WHOIS e RDAP?#

O WHOIS opera na porta TCP 43 e retorna texto plano não padronizado, que exige parsers complexos e suscetíveis a erros. O RDAP opera sob HTTPS na porta 443, possui suporte a internacionalização, cache web e entrega dados em formato JSON estritamente padronizado e auditável.


Referências oficiais das RFCs do RDAP#

  • RFC 7480: HTTP Usage in the Registration Data Access Protocol (RDAP)
  • RFC 7481: Security Services for the Registration Data Access Protocol (RDAP)
  • RFC 7482: Registration Data Access Protocol (RDAP) Query Format
  • RFC 7483: JSON Responses for the Registration Data Access Protocol (RDAP)
  • RFC 7484: Finding the Authoritative Registration Data Service
  • RFC 7485: Inventory of Registration Data Decision Arguments

Este artigo foi útil?

Deixe uma reação rápida para apoiar o conteúdo:

299 leituras
Creative Commons Atribuição-NãoComercial

Este post está licenciado sob CC BY-NC.

Comentários

Participe da discussão abaixo.

0 comentários