BrowserTools
Publicidade
Início / Rede / Expansor e Compressor de IPv6

Expansor e Compressor de IPv6

Expande qualquer endereço IPv6 para a sua forma completa de 8 grupos ou comprime-o para a forma canónica do RFC 5952, localmente no teu navegador.

A carregar Expansor e Compressor de IPv6… Se nada acontecer, ativa o JavaScript.

Um endereço IPv6 é um número de 128 bits, normalmente escrito como oito grupos de quatro dígitos hexadecimais separados por dois pontos, por exemplo 2001:0db8:0000:0000:0000:0000:0000:0001. Como essa forma completa é longa e cheia de zeros, o IPv6 permite duas regras abreviadas: os zeros iniciais dentro de um grupo podem ser eliminados, e uma sequência de grupos consecutivos todos a zero pode ser substituída por dois pontos duplos. Por isso, o mesmo endereço pode escrever-se de forma compacta como 2001:db8::1. O problema é que um único endereço tem muitas representações textuais válidas, o que torna os endereços difíceis de comparar a olho, propensos a erros ao teclá-los em regras de firewall e inconsistentes entre registos e ficheiros de configuração.

Perguntas frequentes

O endereço que introduzo é enviado para um servidor?
Não. Toda a validação e a conversão correm inteiramente no teu navegador em TypeScript puro. O endereço IPv6 que escreves nunca é carregado, transmitido nem armazenado em lado nenhum. A ferramenta funciona totalmente offline depois de a página carregar, por isso é seguro usá-la com endereços internos ou privados.
Qual é a diferença entre IPv6 expandido e comprimido?
A forma expandida mostra os oito grupos com cada zero inicial, por exemplo 2001:0db8:0000:0000:0000:0000:0000:0001. A forma comprimida aplica as duas regras abreviadas, eliminando os zeros iniciais e colapsando a sequência mais longa de grupos a zero em ::, dando 2001:db8::1. Ambas representam exatamente o mesmo endereço de 128 bits; são apenas maneiras diferentes de o escrever.
O que exige o RFC 5952 para a forma canónica?
O RFC 5952 fixa uma única grafia preferida para que os endereços sejam consistentes. Exige dígitos hexadecimais em minúscula, a remoção de todos os zeros iniciais em cada grupo, o uso de :: para abreviar a sequência mais longa de grupos consecutivos a zero, e que :: nunca seja usado para um único grupo a zero. Quando duas sequências de zeros têm o mesmo comprimento, abrevia-se a situada mais à esquerda. Esta ferramenta segue todas essas regras.
Porque é que :: só pode aparecer uma vez num endereço?
Os dois pontos duplos significam preencher a lacuna com tantos grupos a zero quantos sejam necessários para chegar a oito grupos no total. Se :: aparecesse duas vezes, o endereço seria ambíguo porque não haveria forma de saber quantos grupos a zero pertencem a cada lacuna. Por isso, o padrão permite no máximo um :: por endereço, e esta ferramenta rejeita a entrada que contenha mais.
Posso colar um endereço com parênteses retos ou um identificador de zona?
Sim. O analisador remove os parênteses retos que rodeiam o endereço, como em [2001:db8::1], que é como os endereços IPv6 aparecem nas URL, e retira um identificador de zona final como %eth0 usado para endereços de ligação local. A conversão é então realizada sobre o endereço subjacente.
Lida com endereços mapeados de IPv4 como ::ffff:192.168.0.1?
Sim. Um sufixo IPv4 incorporado em forma decimal com pontos é convertido nos dois grupos hexadecimais equivalentes de 16 bits antes da expansão e da compressão. Assim, ::ffff:192.168.0.1 expande-se para 0000:0000:0000:0000:0000:ffff:c0a8:0001 e comprime-se de novo para ::ffff:c0a8:1 em forma canónica de hexadecimal puro.
O que conta como um endereço IPv6 inválido aqui?
A ferramenta reporta um erro quando um endereço tem um número errado de grupos, contém mais do que um ::, tem um grupo com mais de quatro dígitos hexadecimais ou um valor fora do intervalo, inclui caracteres que não são hexadecimais nem separadores válidos, ou usa :: onde não representaria pelo menos um grupo a zero. A mensagem explica que regra foi quebrada.
Porque é que o meu endereço volta em minúscula?
O RFC 5952 especifica letras minúsculas para os dígitos hexadecimais de a a f na forma canónica. A maiúscula é tecnicamente uma entrada válida e é analisada sem problema, mas a ferramenta normaliza a saída para minúscula para que o resultado corresponda ao padrão e se mantenha consistente entre ferramentas e registos.

Sobre Expansor e Compressor de IPv6

Esta ferramenta converte nos dois sentidos. Dá-lhe qualquer endereço IPv6 válido em qualquer notação e ela produz a forma totalmente expandida, os oito grupos preenchidos a quatro dígitos com cada zero visível, e a forma canónica comprimida definida pelo RFC 5952. A forma expandida é ideal quando precisas de um valor inequívoco para uma correspondência exata de cadeias, para dividir um endereço nas suas metades de rede e de interface, ou para ensinar como o endereço está estruturado. A forma comprimida é a representação correta mais curta e é a que deves armazenar e mostrar, porque o RFC 5952 elimina a ambiguidade ao fixar exatamente uma grafia canónica por endereço.

Todo o processamento e a conversão acontecem em TypeScript puro a correr localmente no teu navegador. Nada do que introduzes é carregado, transmitido ou registado, por isso podes inspecionar com segurança endereços internos, prefixos e identificadores de host. O analisador valida a sua entrada e reporta um erro claro perante problemas como grupos a mais, mais do que uns dois pontos duplos, valores fora do intervalo ou caracteres inválidos. Também compreende algumas conveniências do mundo real: os parênteses retos que rodeiam o endereço tal como aparecem nas URL, um identificador de zona final como %eth0, e um sufixo IPv4 incorporado como ::ffff:192.168.0.1, que converte nos grupos hexadecimais equivalentes antes de expandir ou comprimir.

Porque é que um endereço tinha tantas grafias

Quando o IPv6 foi concebido, o objetivo era um espaço de endereços enorme de 128 bits, suficiente para cerca de 340 sextiliões de endereços. Escrever um número assim por completo é incómodo, por isso os criadores acrescentaram uma abreviatura: eliminar os zeros iniciais em cada grupo e colapsar uma sequência de grupos a zero em dois pontos duplos. Estas regras tornaram os endereços muito mais legíveis, mas introduziram um problema subtil. Um único endereço podia agora escrever-se de muitas maneiras igualmente válidas, que diferiam em onde se colocava o ::, em se os zeros eram preenchidos e em se as letras estavam em maiúscula ou em minúscula.

Essa flexibilidade causava verdadeiras dores de cabeça operacionais. Os registos de dois sistemas podiam anotar o mesmo host com grafias diferentes, as listas de controlo de acesso podiam falhar uma correspondência por uma diferença de maiúsculas, e não se podia confiar numa simples comparação de cadeias para saber se dois endereços eram o mesmo. Os engenheiros de redes perdiam tempo a perseguir erros que na realidade eram apenas duas grafias de um mesmo endereço a falhar a comparação como iguais.

O RFC 5952, publicado em 2010, resolveu isto definindo uma representação canónica recomendada. Impôs hexadecimal em minúscula, sem zeros iniciais, abreviar a sequência mais longa de zeros com ::, nunca usar :: para um único grupo a zero, e uma regra de desempate que favorece a sequência situada mais à esquerda. Com uma grafia oficial por endereço, as ferramentas puderam finalmente normalizar e comparar endereços IPv6 de forma fiável. Este conversor implementa esse algoritmo exato, e é por isso que a sua saída comprimida é segura para usar como chave canónica.

Publicidade
Publicidade
Publicidade