Compressão e expansão de IPv6
Abrevie um endereço IPv6 para a sua única forma canônica ou expanda-o para os 32 dígitos, e veja quais zeros saem, por que uma sequência virou :: e qual regra da RFC 5952 a sua digitação quebrou. Listas também funcionam.
Lido como IPv6
Um endereço, ou uma lista com um por linha (até 100). A conversão é feita no seu navegador; nada é enviado.
2001:db8::1:0:0:1
RFC 5952, regra por regra
- Comprimido (RFC 5952)
- Expandido (completo)
- Numa URL
- Como número
- Decimal · hex · binário
- Nome de DNS reverso
Como comprimir um endereço IPv6?
Passe-o para minúsculas, remova os zeros à esquerda de cada grupo e depois troque por :: a sequência mais longa de dois ou mais grupos só de zeros, ou a primeira, se duas tiverem o mesmo tamanho.
Isso dá a única forma canônica que a RFC 5952 pede que o software imprima. Os programas ainda precisam aceitar qualquer outra grafia válida como entrada, então comprimir nunca muda o endereço, só a forma de escrevê-lo.
2001:0DB8:0000:0000:0000:FF00:0042:8329392001:0db8:0000:0000:0000:ff00:0042:8329392001:db8:0:0:0:ff00:42:8329272001:db8::ff00:42:83292239 → 22 caracteres

O que você digitouMaiúsculas, zeros à esquerda e tudo mais: qualquer grafia válida é lida.Zeros removidosZeros à esquerda riscados, grupo por grupo.A sequência que vira ::A sequência mais longa de grupos de zeros; no empate, a primeira.Sequências que ficamAs outras sequências de zeros mantêm os seus 0, com o motivo.Regra por regraQuantas regras da RFC 5952 a digitação quebrou; a lista abaixo aponta cada uma e o que mudou.Quais são as regras de compressão do IPv6?
A RFC 5952 define cinco regras: remover os zeros à esquerda, fazer o :: o mais longo possível, nunca usar :: para um único grupo de zeros, comprimir a sequência mais longa (a primeira no empate) e escrever as letras hex em minúsculas.
Uma sexta recomendação trata dos endereços que carregam IPv4: depois de um prefixo como ::ffff:, escreva os últimos 32 bits como um endereço IPv4 com pontos. A ferramenta confere cada regra com o que você digitou e aponta as que corrigiu.
1Zeros à esquerda removidos§4.1
Certo: 2001:db8::1
Errado: 2001:0db8::0001
2:: o mais longo possível§4.2.1
Certo: 2001:db8::2:1
Errado: 2001:db8:0:0:0:0:2:1
3Sem :: para um só grupo§4.2.2
Certo: 2001:db8:0:1:1:1:1:1
Errado: 2001:db8::1:1:1:1:1
4A sequência mais longa; a primeira no empate§4.2.3
Certo: 2001:db8::1:0:0:1
Errado: 2001:db8:0:0:1::1
5Minúsculas§4.3
Certo: 2001:db8::a
Errado: 2001:DB8::A
+Final IPv4 com pontos§5
Certo: ::ffff:192.0.2.1
Errado: 0:0:0:0:0:ffff:192.0.2.1
Como expandir um endereço IPv6?
Conte os grupos escritos, deixe o :: representar quantos grupos de zeros faltarem para chegar a oito e complete cada grupo até quatro dígitos: 2001:db8::1 tem três grupos, então o :: vale cinco.
A forma expandida é a que o DNS reverso usa, dígito por dígito, e a que muitos logs e planilhas precisam para ordenar como texto. O Python a chama de .exploded e o Go de StringExpanded.
2001db8::13 escritos2001db8000001+ 5 grupos de zeros representados por ::20010db8000000000000000000000001completados até 4 dígitosDe quantas formas um endereço IPv6 pode ser escrito?
De muitas: zeros à esquerda, maiúsculas e minúsculas e a posição do :: podem mudar, então um endereço tem muitas grafias válidas, e a RFC 5952 lista oito para 2001:db8:0:0:1:0:0:1 antes de fixar uma forma canônica.
É por isso que comparar endereços como texto falha: duas grafias do mesmo endereço não coincidem. Compare-os como números de 128 bits, ou comprima os dois antes.
2001:db8:0:0:1:0:0:12001:0db8:0:0:1:0:0:12001:db8::1:0:0:12001:db8::0:1:0:0:12001:0db8::1:0:0:12001:db8:0:0:1::12001:db8:0000:0:1::12001:DB8:0:0:1::12001:db8::1:0:0:1canônica · RFC 5952Como escrever um endereço IPv6 numa URL, com porta ou zona?
Coloque o endereço entre colchetes, http://[2001:db8::1]:8443/, para que a porta não seja confundida com um grupo; uma zona como %eth0 não pode entrar numa URL do navegador.
A RFC 5952 manda pôr entre colchetes um endereço com porta e chama 2001:db8::1:8443 de não recomendado. Os colchetes não servem para mais nada numa URL. Os navegadores imprimem o endereço em hex mesmo depois de ::ffff:, então [::ffff:192.0.2.1] aparece como [::ffff:c000:201].
As zonas indicam uma interface numa única máquina, como em fe80::1%eth0. A RFC 9844 as tirou de novo das URLs em 2025 e os navegadores as recusam, embora os programas ainda devam deixar você digitar uma.
Uma zona (%eth0) · fe80::1%eth0
| Digitada no campo de um programa | permitida |
| Numa URL do navegador | recusada |
| inet_pton() | não consegue ler |
| Endereços globais | nunca têm |
Como comprimir ou expandir IPv6 em código?
Leia o endereço e imprima-o: o .compressed do Python, o netip.Addr.String() do Go e o INET6_NTOA(INET6_ATON(…)) do MySQL dão o texto canônico, e .exploded e StringExpanded(), a forma completa.
No Python, str() também dá a forma comprimida, e o Python aceita um sufixo %zona. O MySQL imprime em minúsculas, com no máximo 39 caracteres, igual em todas as plataformas.
› import ipaddress a = ipaddress.ip_address('2001:0DB8::0001') a.compressed, a.exploded ('2001:db8::1', '2001:0db8:0000:0000:0000:0000:0000:0001')
Python ipaddress
› a := netip.MustParseAddr("2001:0DB8::0001") fmt.Println(a.String(), a.StringExpanded()) 2001:db8::1 2001:0db8:0000:0000:0000:0000:0000:0001
Go net/netip
› SELECT INET6_NTOA(INET6_ATON('2001:0DB8::0001')); 2001:db8::1
MySQL 8.4
Perguntas frequentes
Qual é a forma comprimida de 2001:0db8:0000:0000:0000:ff00:0042:8329?
Dá para usar :: duas vezes num endereço IPv6?
Por que 2001:db8:0:1:1:1:1:1 não vira 2001:db8::1:1:1:1:1?
Endereços IPv6 devem ser escritos em maiúsculas ou minúsculas?
Como expandir o :: num endereço IPv6?
Quantos caracteres tem o endereço IPv6 mais longo?
Por que ::ffff:c000:280 vira ::ffff:192.0.2.128?
Como colocar um endereço IPv6 com porta numa URL?
Como comprimir um endereço IPv6 em Python?
Posso comprimir uma lista de endereços IPv6 de uma vez?
Ferramentas relacionadas
IPv6 para IPv4
Encontre o IPv4 dentro de um endereço IPv6: mapeado, NAT64, 6to4, Teredo e ISATAP, bit a bit
IPv4 para IPv6
Todas as formas IPv6 de um endereço IPv4: mapeado, NAT64 e 6to4, cada uma marcada como em uso ou rara
Conversor de IP para Decimal
Endereço IP para decimal, hex, binário e octal e de volta, com os valores posicionais de cada octeto
Qual é Meu IP
Seu IP público IPv4 e IPv6 de uma vez, com a rede, a localização e uma checagem de VPN
Teste IPv6
Teste se seu IPv6 funciona, que família seu navegador usa e se um site tem IPv6
Calculadora de Sub-rede
Rede, broadcast, hosts utilizáveis e máscaras de qualquer bloco IPv4 ou IPv6, com VLSM, divisões e sub-redes na nuvem
DNS Reverso
Encontre hostnames associados a qualquer endereço IP via registros PTR
Consulta DNS
Todos os registros DNS direto dos servidores do domínio, ao lado do cache do Google e da Cloudflare