Validador IPv6
Valide endereços IPv6 (formatos completo e comprimido)
Input IPv6 Addresses
Validation Results
Validation results will appear here
O Validador IPv6 realiza validação abrangente de endereços IPv6 em todas as representações válidas: notação hexadecimal completa de 8 grupos, atalho :: comprimido, formato misto compatível com IPv4 e endereços com IDs de zona. Digite um endereço como 2001:db8::1 ou 2001:db8::1::2 e obtenha um resultado imediato válido/inválido com a forma canônica, detalhes de erro e classificação de tipo de endereço (unicast global, link-local, ULA, multicast ou loopback).
Entendendo a Sintaxe de Endereço IPv6
Endereços IPv6 têm 128 bits de comprimento, escritos como oito grupos de quatro dígitos hexadecimais separados por dois-pontos -- algo como 2001:0db8:0000:0000:0000:0000:0000:0001. Isso é verboso o suficiente para que uma notação de atalho fosse desenvolvida: você pode descartar zeros à esquerda dentro de cada grupo e substituir a sequência consecutiva mais longa de grupos de todos-zero com ::. Portanto, esse mesmo endereço se torna 2001:db8::1, que é muito mais fácil de ler e digitar. O lado negativo dessa flexibilidade é que o mesmo endereço pode ser escrito de muitas maneiras diferentes, e nem todas elas são válidas.
As regras para o que constitui um endereço IPv6 válido são definidas principalmente no RFC 4291, com diretrizes de formatação canônica no RFC 5952. O erro mais comum é usar :: duas vezes no mesmo endereço. Como :: pode representar qualquer número de grupos zero consecutivos, permitir duas sequências :: tornaria impossível determinar quantos grupos cada uma representa. O endereço 2001::1::2 é ambíguo -- o primeiro :: representa dois grupos zero e o segundo três, ou vice versa? O RFC resolve isso permitindo exatamente um :: por endereço.
Outros erros comuns incluem grupos hexadecimais que excedem quatro dígitos (como ::12345), caracteres não-hex (como gggg) e contagens de grupo incorretas. Quando não há compressão ::, o endereço deve conter exatamente oito grupos separados por dois-pontos. Com ::, o número total de grupos explicitamente escritos mais os grupos comprimidos deve igual a oito. Este validador verifica todas essas regras e relata o erro específico para qualquer endereço que falhe, tornando fácil identificar e corrigir o problema.
Como Validar um Endereço IPv6
- Digite um ou mais endereços IPv6 em qualquer formato de notação válida
- Clique em Validar para verificar cada endereço contra as regras de formatação RFC 4291 e RFC 5952
- Revise os resultados mostrando status válido/inválido, a forma canônica e o erro específico para qualquer endereço rejeitado
- Para endereços válidos, veja o tipo de endereço (unicast global, link-local, multicast, loopback, etc.)
Exemplos de Validação IPv6
| Entrada | Válido | Formato | Notas |
|---|---|---|---|
2001:0db8:0000:0000:0000:0000:0000:0001 | Sim | Completo | Todos os 8 grupos com zeros à esquerda |
2001:db8::1 | Sim | Comprimido | Grupos zero consecutivos contraídos |
::1 | Sim | Comprimido | Endereço de loopback |
:: | Sim | Comprimido | Endereço não especificado (todos zeros) |
::ffff:192.168.1.1 | Sim | Misto | Endereço IPv6 mapeado para IPv4 |
fe80::1%eth0 | Sim | Com ID de zona | Link-local com escopo de interface |
2001:db8::1::2 | Não | -- | Múltiplas sequências :: não permitidas |
2001:db8:gggg::1 | Não | -- | gggg não é hexadecimal válido |
2001:db8:1:2:3:4:5:6:7 | Não | -- | 9 grupos (máximo é 8) |
2001:db8::12345 | Não | -- | Grupo excede 4 dígitos hex (máx ffff) |
2001:db8 | Não | -- | Apenas 2 grupos sem compressão :: |
Classificação de Tipo de Endereço IPv6
| Endereço / Prefixo | Tipo | RFC | Uso |
|---|---|---|---|
::1/128 | Loopback | RFC 4291 | Teste de máquina local |
::/128 | Não especificado | RFC 4291 | Origem antes da atribuição de endereço |
2000::/3 | Unicast Global | RFC 4291 | Endereços roteáveis pela internet pública |
fe80::/10 | Link-Local | RFC 4291 | Comunicação de link único, autoconfigurado |
fc00::/7 | Único Local (ULA) | RFC 4193 | Redes privadas (semelhante a RFC 1918) |
ff00::/8 | Multicast | RFC 4291 | Comunicação um-para-muitos |
::ffff:0:0/96 | Mapeado para IPv4 | RFC 4291 | Endereços IPv4 incorporados em IPv6 |
64:ff9b::/96 | NAT64 Bem-Conhecido | RFC 6052 | Tradução IPv4/IPv6 |
Quando Usar o Validador IPv6
- Configuração dual-stack -- valide endereços IPv6 antes de adicionar registros AAAA, regras de firewall ou configurações de roteador ao lado da configuração IPv4 existente
- Desenvolvimento de aplicações -- verifique que a entrada IPv6 enviada pelo usuário em formulários web e APIs está sintaticamente correta antes do processamento ou armazenamento
- Auditoria de arquivo de configuração -- examine arquivos de configuração para endereços IPv6 malformados que podem impedir serviços de fazer bind ou conectar
- Análise de log e importação de dados -- filtre endereços IPv6 válidos de fontes de dados mistas que podem conter strings de endereço truncadas ou corrompidas
- Planejamento de transição IPv6 -- valide endereços em planos de migração para garantir que estejam em conformidade com a notação correta antes da implantação
- Revisão de política de segurança -- verifique que endereços IPv6 em ACLs e regras de grupo de segurança sejam sintaticamente válidos e do tipo esperado
Como Funciona a Validação de Endereço IPv6
Regras de Compressão (RFC 5952)
Endereços IPv6 podem ser escritos de múltiplas formas equivalentes. O validador aceita todas as formas válidas e identifica a representação canônica:
- Supressão de zero à esquerda:
2001:0db8pode ser escrito como2001:db8 - Compressão de grupo zero consecutivo:
2001:db8:0:0:0:0:0:1pode ser escrito como2001:db8::1 - Apenas um
::único: apenas uma sequência::é permitida por endereço, porque múltiplas tornariam a expansão ambígua - Execução mais à esquerda: quando múltiplas execuções de zero de comprimento igual existem, RFC 5952 recomenda comprimir a mais à esquerda
Manipulação de ID de Zona
Endereços link-local (fe80::/10) requerem um ID de zona para especificar qual interface de rede eles se aplicam, já que o mesmo endereço link-local pode existir em múltiplas interfaces simultaneamente. O ID de zona segue um separador %:
fe80::1%eth0 (Nome de interface Linux)
fe80::1%15 (Índice de interface Windows)
fe80::1%en0 (Nome de interface macOS)
O validador aceita IDs de zona e os valida separadamente da porção de endereço. IDs de zona são apenas significativos para endereços link-local e de escopo multicast.
Conselhos Práticos para Validação IPv6
Validação IPv6 em aplicações requer mais pensamento que IPv4 por causa das muitas representações válidas. Dois endereços que parecem completamente diferentes podem ser o mesmo: 2001:0db8:0000:0000:0000:0000:0000:0001 e 2001:db8::1 são idênticos. Se sua aplicação armazena endereços IPv6 e precisa detectar duplicatas ou realizar buscas, sempre normalize para uma forma canônica antes da comparação. A melhor prática é expandir para forma completa para armazenamento e comparação, depois comprimir para exibição.
Ao validar entrada de usuário em formulários web, lembre-se que navegadores e sistemas operacionais às vezes incluem IDs de zona em endereços link-local automaticamente. Um usuário pode colar fe80::1%eth0 da saída de seu terminal. Seu validador precisa lidar com o ID de zona graciosamente -- aceite e remova-o, ou aceite e armazene-o, dependendo do seu caso de uso. Rejeitar IDs de zona inteiramente frustrará usuários que estão copiando endereços de saída de sistema legítima.
Esteja ciente de que endereços mapeados para IPv4 como ::ffff:192.168.1.1 são IPv6 válido, mas têm implicações de segurança. Aplicações que aceitam entrada IPv6 e depois extraem o endereço IPv4 incorporado devem validar ambas as partes. Um atacante pode fabricar um endereço IPv6 mapeado para IPv4 malicioso para contornar verificações de validação IPv4 em aplicações dual-stack. Se sua aplicação não precisa lidar com endereços mapeados para IPv4, considere rejeitá-los explicitamente.
Perguntas Frequentes
Por que meu endereço IPv6 com dois :: falha na validação?
O atalho :: substitui um ou mais grupos consecutivos de todos zeros. Se duas sequências :: fossem permitidas, o analisador não poderia determinar quantos grupos zero cada uma representa. Por exemplo, 2001::1::2 poderia expandir para múltiplos endereços válidos diferentes. O RFC obriga exatamente um :: por endereço.
::ffff:192.168.1.1 é um endereço IPv6 válido?
Sim. Este é um endereço IPv6 mapeado para IPv4 definido no RFC 4291. O prefixo ::ffff: seguido por um endereço IPv4 em notação decimal com pontos é usado por aplicações dual-stack para representar conexões IPv4 dentro de estruturas de dados IPv6. O validador reconhece esta notação mista e valida tanto o prefixo IPv6 quanto a porção IPv4 incorporada.
Qual é a diferença entre :: e ::1?
:: é o endereço não especificado (todos os 128 bits são zero), equivalente ao 0.0.0.0 do IPv4. É usado como um endereço de origem antes que um dispositivo tenha recebido um endereço. ::1 é o endereço de loopback (127 zeros seguidos por um único bit 1), equivalente ao 127.0.0.1 do IPv4. É usado para comunicação de máquina local.
Dígitos hex em maiúsculas são válidos em endereços IPv6?
Sim, tanto 2001:DB8::1 quanto 2001:db8::1 são sintaticamente válidos e representam o mesmo endereço. Porém, RFC 5952 recomenda minúsculas para a representação canônica. Este validador aceita ambos os casos, mas pode indicar a forma canônica em minúsculas.
Como valido um endereço IPv6 com comprimento de prefixo como 2001:db8::/32?
Esta ferramenta valida endereços IPv6 simples sem notação de prefixo. Para validar um endereço com um comprimento de prefixo, use a Calculadora de Sub-redes IPv6, que aceita notação de prefixo e valida tanto o endereço quanto o comprimento de prefixo.
Ferramentas Relacionadas
- Validador IPv4 - Valide endereços IPv4 em formato strict dotted-quad
- Expandir ↔ Comprimir IPv6 - Converta entre notação IPv6 expandida e comprimida
- Conversor IPv6 ↔ BigInt - Converta endereços IPv6 para/de inteiros de 128-bit
- Detector IPv6 Único Local/Link-Local - Detecte escopo e tipo de endereço IPv6
- Detector de Família de Endereço - Detecte se um endereço é IPv4, IPv6 ou inválido