Validador de nomes de domínio (verificação de conformidade RFC)
Verifica se um nome de domínio está em conformidade com as regras de sintaxe da RFC 1035/1123. Valida individualmente o comprimento de cada rótulo, o comprimento total, os caracteres permitidos e a posição dos hífens, mostrando o motivo específico de qualquer violação.
O que é o validador de nomes de domínio
O validador de nomes de domínio verifica, regra por regra, se uma cadeia informada cumpre as regras de sintaxe de nomes de domínio definidas na RFC 1035 (publicada em 1987) e na RFC 1123 (publicada em 1989), em vez de simplesmente devolver um único veredito de "válido ou inválido". Como mostra exatamente qual regra foi violada e, quando aplicável, qual rótulo (cada uma das partes de um domínio separadas por pontos) causou a falha, é especialmente útil quando você já sabe que uma cadeia de domínio está sendo rejeitada em algum lugar, mas não sabe o motivo.
É importante entender o que esta ferramenta não faz: ela verifica apenas a sintaxe, ou seja, a forma da cadeia como texto. Ela não consulta o DNS para confirmar se o domínio está de fato registrado, não verifica se existe um site em funcionamento nesse endereço e não informa se o nome está disponível para registro. Isso a torna adequada para confirmar que um nome candidato a um novo domínio, ou um nome de host que você está incluindo em um arquivo de configuração, é sintaticamente correto antes de dar o passo seguinte de registrá-lo ou implantá-lo.
Como usar o validador de nomes de domínio
- Insira um nome de domínio Digite no campo de entrada o nome de domínio que deseja verificar (por exemplo, example.com). Remova antes qualquer protocolo inicial, como `https://`, ou caminho final, como `/path`, deixando apenas a parte do domínio.
- Analise o resultado da validação Assim que você digita, seis regras são avaliadas em tempo real e cada uma recebe o rótulo Aprovado, Falha ou Aviso.
- Leia o motivo de qualquer falha Toda linha marcada como Falha inclui um motivo específico, como o rótulo problemático ou sua contagem de caracteres, para que você veja exatamente qual parte da cadeia precisa mudar.
- Experimente os botões de exemplo para ver os casos extremos Os botões Exemplo válido e Exemplo inválido preenchem o campo com cadeias de amostra situadas bem nos limites das regras, permitindo ver rapidamente como cada uma se comporta.
Dicas para aproveitar melhor
- Esta ferramenta valida de acordo com as regras de sintaxe definidas na RFC 1035/1123; ela não verifica se o domínio está de fato registrado ou se pode ser resolvido via DNS.
- Antes de escrever sua própria expressão regular de validação para um formulário, teste esta ferramenta com os casos extremos (exatamente 63 caracteres, posição de hífen etc.) para garantir que sua implementação os cubra.
- Entradas com caracteres não ASCII, como nomes de domínio em japonês, apenas fazem com que a verificação do conjunto de caracteres seja ignorada. Converta-os primeiro para a notação `xn--` com o conversor de Punycode para uma verificação totalmente precisa.
- Um TLD totalmente numérico quase nunca ocorre na prática, mas é incluído intencionalmente para detectar entradas que poderiam ser confundidas com um endereço IP durante a validação de formulários.
- O mesmo conjunto de regras pode ser aplicado à parte de um endereço de e-mail após o símbolo `@`, servindo também como uma verificação simples do domínio do e-mail.
Quando usar esta ferramenta
Conferir uma expressão regular de validação antes de publicá-la
Antes de escrever sua própria expressão regular para validar um campo de domínio, teste aqui os casos extremos — um rótulo com exatamente 63 caracteres, um hífen bem no início ou no fim — para identificar cedo as lacunas da sua implementação.
Verificar antecipadamente um nome candidato para um novo domínio
Ao decidir o nome de um novo serviço ou de um subdomínio, você pode confirmar que ele é sintaticamente correto antes mesmo de pesquisá-lo em um registrador.
Checar rapidamente a parte de domínio de um endereço de e-mail
Como a parte de um endereço de e-mail depois do símbolo @ costuma seguir as mesmas regras de nome de host, esta ferramenta também funciona como uma verificação secundária leve para sua lógica de validação de e-mails.
Investigar por que uma cadeia foi rejeitada
Se um sistema sinaliza uma cadeia como "nome de domínio inválido" e o motivo não é óbvio, cole-a aqui para identificar exatamente qual regra ela não cumpre.
Glossário
- Rótulo
- Cada um dos segmentos de um nome de domínio separados por pontos. Em www.example.com há três rótulos: "www", "example" e "com". A RFC 1035 define seus limites de comprimento e caracteres no nível do rótulo, e não do domínio como um todo.
- TLD (domínio de topo)
- O rótulo mais à direita de um nome de domínio, como .com ou .br. Ele fica no topo da hierarquia do DNS, logo abaixo da raiz invisível.
- FQDN (nome de domínio totalmente qualificado)
- Um nome de domínio escrito por completo, do nome de host até o TLD, sem omitir nenhuma parte. Rigorosamente, um FQDN termina com um ponto final que representa a raiz do DNS (por exemplo, example.com.), embora esse ponto final costume ser omitido no uso cotidiano.
- IDN (nome de domínio internacionalizado)
- Um nome de domínio que contém caracteres não ASCII, como japonês, chinês ou escrita árabe. Como o próprio DNS só consegue lidar com caracteres ASCII, um IDN é convertido para Punycode antes de ser efetivamente registrado ou resolvido.
- Punycode
- Um esquema de codificação que converte a parte não ASCII de um IDN em uma cadeia ASCII que o DNS consegue processar, com o prefixo xn--. Os navegadores costumam converter de volta para os caracteres originais na barra de endereços.
- Formato de transmissão
- O formato binário em que consultas e respostas DNS são de fato trocadas pela rede. Cada rótulo é precedido de um único byte indicando seu comprimento, e esse byte só pode representar valores de 0 a 63 — a origem técnica do limite de 63 caracteres por rótulo.
- Nome de host
- Um nome usado para identificar um dispositivo em uma rede. É um tipo específico de nome de domínio, e a RFC 1123 restringe os caracteres que um nome de host pode usar a letras, dígitos e hífens — exatamente o conjunto de regras que esta ferramenta verifica.
Perguntas frequentes
Curiosidade — Por que a validação de nomes de domínio é reinventada tantas vezes
A verificação de sintaxe de um nome de domínio parece algo que deveria ser resolvido com uma única expressão regular simples, mas é uma área em que muitos desenvolvedores tropeçaram em suas próprias implementações. Da validação de e-mails em formulários, passando pela análise de nomes de host em arquivos de configuração, até a validação de URLs em APIs, "strings parecidas com domínios" aparecem em toda parte, mas implementações que refletem com precisão as regras oficiais da RFC 1035 (1987) e da RFC 1123 (1989) são surpreendentemente raras.
O limite de comprimento em dois níveis — 63 caracteres por rótulo, 253 no total — vem diretamente do design do formato de transmissão do DNS (o formato binário efetivamente trocado pela rede). Cada rótulo é precedido por um byte que indica seu comprimento, e esse byte é restrito ao intervalo de 0 a 63 (o valor máximo representável em 6 bits), que é o motivo direto do limite de comprimento do rótulo.
A convenção de que um TLD não deve ser totalmente numérico também tem uma história interessante. Não é uma regra exigida por nenhuma RFC, mas sim uma prática de implementação amplamente adotada para distinguir nomes de domínio de endereços IPv4 (sequências de dígitos e pontos). Muitos resolvedores de DNS e navegadores usam essa convenção para decidir que uma string como 192.168.1.1 deve ser tratada como um endereço IP, e não como um nome de domínio.