Pular para o conteúdo
Qual Meu IP

Utilitários

Conversor de IP: decimal, binário e hexadecimal

Converta qualquer IPv4 para binário, inteiro, hexadecimal e octal (e de volta), veja a forma mapeada em IPv6 e expanda ou comprima endereços IPv6, com a explicação de cada formato.

O formato é detectado sozinho: IPv4 (192.168.1.1), inteiro (3232235777), hexadecimal com 0x, binário de 32 bits ou IPv6 (inclusive ::ffff:192.168.1.1). A conversão acontece no seu navegador e nada é enviado para servidores.

Exemplos:

192.168.1.1: 10 formatos calculados.

Endereço

192.168.1.1

Formato lido: Decimal pontuadoPrivado (rede local, RFC 1918)Classe C (histórica)
Decimal pontuadoA forma padrão, usada em configurações.
192.168.1.1
Inteiro (decimal)Os 32 bits como um único número.
3232235777
Hexadecimal
0xC0A80101
Hexadecimal pontuado
0xC0.0xA8.0x01.0x01
Binário
11000000.10101000.00000001.00000001
Octal pontuadoO zero inicial indica octal.
0300.0250.01.01
Octal (inteiro)
030052000401
IPv4 mapeado em IPv6Forma recomendada pela RFC 5952.
::ffff:192.168.1.1
IPv4 mapeado (hexadecimal)
::ffff:c0a8:101
DNS reverso (PTR)
1.1.168.192.in-addr.arpa

Octeto por octeto

Cada octeto tem 8 bits. Some os pesos dos bits ligados (1) para obter o número decimal.

Octeto 1192

11000000 = 128 + 64 = 192

Octeto 2168

10101000 = 128 + 32 + 8 = 168

Octeto 31

00000001 = 1

Octeto 41

00000001 = 1

Um conversor de IP mostra o mesmo endereço em vários formatos: o IPv4 de sempre (192.168.1.1), o número inteiro de 32 bits (3232235777), hexadecimal (0xC0A80101), binário, octal e a forma mapeada em IPv6 (::ffff:192.168.1.1). Com IPv6, ele expande e comprime o endereço segundo a RFC 5952. Tudo roda no seu navegador.

Como usar o conversor

Cole o valor no campo e o formato é detectado automaticamente. Não é preciso escolher o modo de conversão antes:

  • IPv4 em decimal pontuado, como 8.8.8.8.
  • Número inteiro, como 3232235777. Valores acima de 4.294.967.295 (o maior IPv4) são lidos como IPv6.
  • Hexadecimal com prefixo 0x, inteiro (0xC0A80101) ou por octeto (0xC0.0xA8.0x01.0x01).
  • Binário de 32 bits, com ou sem pontos entre os octetos.
  • IPv6 em qualquer forma válida: comprimida, expandida, com IPv4 no final ou com identificador de zona (fe80::1%eth0).

Se o valor tiver zeros à esquerda, como 192.168.001.010, a ferramenta não converte sozinha: ela mostra a leitura decimal e a leitura octal lado a lado, e você escolhe qual usar. Endereços com prefixo, como /24, devem ir para a calculadora de sub-rede.

O mesmo endereço em cada formato

Todos os formatos abaixo representam exatamente os mesmos 32 bits. Os que usam 0x ou zero inicial são aceitos por navegadores e por muitos comandos de rede, o que tem consequências de segurança explicadas mais adiante.

192.168.1.1 em todos os formatos do conversor
Decimal pontuadoValor192.168.1.1Onde apareceConfigurações de rede, roteadores, documentação
Inteiro de 32 bitsValor3232235777Onde apareceBancos de dados, logs, código
HexadecimalValor0xC0A80101Onde apareceProgramação, capturas de pacotes
Hexadecimal por octetoValor0xC0.0xA8.0x01.0x01Onde apareceFormas aceitas por inet_aton() e navegadores
BinárioValor11000000.10101000.00000001.00000001Onde apareceCálculo de máscaras e sub-redes
Octal por octetoValor0300.0250.01.01Onde apareceRaro; o zero inicial indica base 8
IPv4 mapeado em IPv6Valor::ffff:192.168.1.1Onde apareceServidores dual-stack e logs
Mapeado em hexadecimalValor::ffff:c0a8:101Onde apareceA mesma forma, só com grupos hexadecimais
DNS reversoValor1.1.168.192.in-addr.arpaOnde apareceConsulta PTR do IP reverso

Como converter à mão

Um IPv4 tem quatro octetos, e cada octeto vale de 0 a 255. Para transformar o endereço em um único número, multiplique cada octeto pela sua posição em base 256:

192.168.1.1 para inteiro

  1. 1

    Primeiro octeto × 16.777.216

    192 × 16.777.216 = 3.221.225.472 (16.777.216 é 256 elevado a 3).
  2. 2

    Segundo octeto × 65.536

    168 × 65.536 = 11.010.048.
  3. 3

    Terceiro octeto × 256

    1 × 256 = 256.
  4. 4

    Some tudo com o último octeto

    3.221.225.472 + 11.010.048 + 256 + 1 = 3.232.235.777.

Para voltar, faça o caminho inverso: divida o inteiro por 16.777.216 (o quociente é o primeiro octeto), divida o resto por 65.536, depois por 256, e o que sobrar é o último octeto.

Para o binário, decomponha cada octeto nos pesos 128, 64, 32, 16, 8, 4, 2 e 1: 192 = 128 + 64 vira 11000000, e 168 = 128 + 32 + 8 vira 10101000. O hexadecimal sai do binário agrupando os bits de 4 em 4: 1100 0000 é C0 e 1010 1000 é A8. É por isso que cada octeto sempre cabe em dois dígitos hexadecimais. O quadro “Octeto por octeto” do conversor mostra essa soma para o endereço digitado.

Por que guardar IPs como números inteiros

Um inteiro de 32 bits ocupa 4 bytes e pode ser comparado de uma vez. Para saber se um IP pertence a um bloco, basta verificar se o número está entre o primeiro e o último endereço: a rede 10.10.50.0/24 vai de 168440320 a 168440575, então 10.10.50.25 (168440345) e 10.10.50.99 (168440419) estão dentro dela. O MySQL oferece as funções INET_ATON() e INET_NTOA() para essa conversão, e o PostgreSQL tem os tipos nativos inet e cidr, que aceitam IPv4 e IPv6. Para descobrir os limites de um bloco, use a calculadora de sub-rede; o guia de máscara de sub-rede e CIDR explica a notação.

Zeros à esquerda e endereços disfarçados

Pelas regras herdadas da função inet_aton() do Unix, e adotadas pelos navegadores no padrão de URLs do WHATWG, um octeto que começa com 0 é octal e um que começa com 0x é hexadecimal. Então 010.8.8.8 leva a 8.8.8.8, não a 10.8.8.8. Bibliotecas que ignoravam o zero criaram falhas reais: a CVE-2021-29921 afetou o módulo ipaddress do Python antes da versão 3.9.5, e a CVE-2021-28918 afetou o pacote netmask do npm até a versão 1.0.6. Nos dois casos, um filtro podia aprovar um endereço que outro programa interpretava de forma diferente.

A mesma flexibilidade faz http://3232235777 e http://0xC0A80101 abrirem 192.168.1.1 no navegador. Golpistas já usaram esse truque para esconder o destino de links. Formas abreviadas, como 127.1 no lugar de 127.0.0.1, também são aceitas por alguns sistemas. O conversor recusa essas formas ou pede que você escolha a leitura, para que o resultado nunca dependa de um palpite.

IPv6: expandir, comprimir e a forma canônica

Um IPv6 tem 128 bits, escritos como oito grupos de quatro dígitos hexadecimais separados por dois-pontos. Duas regras encurtam a escrita: os zeros à esquerda de cada grupo podem ser omitidos, e uma sequência de grupos zerados pode ser trocada por :: uma única vez. A RFC 5952 transformou isso em uma forma canônica, que o conversor sempre exibe:

  • letras sempre minúsculas;
  • nenhum zero à esquerda dentro dos grupos;
  • :: na sequência de zeros mais longa e, em caso de empate, na primeira;
  • nunca usar :: para um único grupo zerado.

Na prática, 2001:0db8:0000:0000:0000:ff00:0042:8329 vira 2001:db8::ff00:42:8329, e 2001:db8:0:0:1:0:0:1 vira 2001:db8::1:0:0:1, porque as duas sequências têm o mesmo tamanho e vale a primeira. Já 2001:0db8:85a3::8a2e:0370:7334 é válido, mas a forma canônica é 2001:db8:85a3::8a2e:370:7334. Comparar endereços na forma canônica evita que o mesmo IP pareça dois diferentes em planilhas, logs e regras de firewall. A forma expandida, com os 32 dígitos, é útil quando você precisa alinhar endereços ou calcular prefixos à mão.

IPv4 dentro do IPv6: mapeado, NAT64 e 6to4

Alguns blocos IPv6 carregam um IPv4 nos últimos bits, e o conversor identifica e extrai esse endereço:

  • ::ffff:0:0/96 (IPv4 mapeado): usado por sistemas operacionais para representar conexões IPv4 em programas que trabalham com IPv6. É o motivo de aparecerem entradas como ::ffff:203.0.113.5 em logs de servidores.
  • 64:ff9b::/96 (NAT64): prefixo da RFC 6052 usado por redes só IPv6 para alcançar sites que ainda só têm IPv4. Por regra, ele só deve conter IPv4 públicos, por isso o conversor só mostra essa forma para endereços públicos.
  • 2002::/16 (6to4): um mecanismo de transição antigo, hoje pouco usado, que embutia o IPv4 logo após os primeiros 16 bits.

Nenhuma dessas formas dá ao seu aparelho um IPv6 de verdade. Para saber se a sua conexão já tem um, use o teste de IPv6, e para entender as diferenças entre os protocolos leia IPv4 vs. IPv6.

DNS reverso: in-addr.arpa e ip6.arpa

O conversor também monta o nome usado na consulta de DNS reverso (registro PTR). No IPv4, os octetos são invertidos e recebem o sufixo in-addr.arpa: 8.8.4.4 vira 4.4.8.8.in-addr.arpa. No IPv6, cada um dos 32 dígitos hexadecimais é invertido, separado por pontos e termina em ip6.arpa. Com esse nome em mãos, a consulta DNS mostra o hostname associado ao IP, e o artigo sobre IP reverso explica para que ele serve, de servidores de e-mail a diagnósticos de rede.

Perguntas frequentes

Como converter um IP para binário?
Converta cada um dos quatro octetos separadamente em um número binário de 8 bits, usando os pesos 128, 64, 32, 16, 8, 4, 2 e 1. Por exemplo, 192 = 128 + 64, que vira 11000000. Complete com zeros à esquerda até ter 8 dígitos e junte os quatro blocos com pontos.
Qual é o número inteiro de 192.168.1.1?
É 3232235777. A conta é 192 × 16.777.216 + 168 × 65.536 + 1 × 256 + 1. Esse formato de 32 bits é o que muitos bancos de dados e linguagens de programação usam para guardar e comparar endereços IPv4.
O que significa ::ffff: antes de um endereço IP?
É um endereço IPv4 mapeado em IPv6, definido na RFC 4291. Servidores que escutam em IPv6 e IPv4 ao mesmo tempo costumam registrar conexões IPv4 nesse formato, como ::ffff:203.0.113.5. O endereço real do cliente é o IPv4 que aparece no final.
Por que 010.8.8.8 não é o mesmo que 10.8.8.8?
Porque o zero à esquerda é ambíguo. Navegadores, a função inet_aton() e o ping de muitos sistemas entendem 010 como número octal, que vale 8, e levam você a 8.8.8.8. Outros programas ignoram o zero e leem 10.8.8.8. Por isso o conversor não escolhe sozinho e mostra as duas leituras.
Qual é a forma correta de escrever um endereço IPv6?
A RFC 5952 define a forma canônica: letras minúsculas, sem zeros à esquerda em cada grupo e com “::” substituindo a maior sequência de grupos zerados, uma única vez. Assim, 2001:0DB8:0000:0000:0000:0000:0000:0001 deve ser escrito 2001:db8::1. A forma longa continua válida, mas a canônica evita erros em comparações e buscas.
Dá para converter meu IPv4 em um IPv6?
Não no sentido de ganhar um endereço IPv6. Formas como ::ffff:192.168.1.1 apenas representam o IPv4 dentro da notação IPv6; elas não funcionam como endereço IPv6 na internet. Um IPv6 de verdade é atribuído pelo seu provedor, e você pode conferir se já tem um no teste de IPv6.
Os endereços que eu digito são enviados para algum servidor?
Não. Todas as conversões são calculadas no seu navegador, com JavaScript, e nada do que você digita sai do seu dispositivo.

Ferramenta e conteúdo revisados em pela equipe do Qual Meu IP.

Para entender melhor

Cabos de rede azuis, verdes, amarelos e vermelhos conectados às portas de um switch Ethernet

Como Funciona14 min

O que é endereço IP e para que ele serve

Entenda o que é IP (Internet Protocol), para que serve, os tipos (público, privado, IPv4 e IPv6), o que ele revela e veja agora qual é o seu endereço IP.

Ferramentas relacionadas

Todas as ferramentas

Mostra seu IPv4 e IPv6 e se a conexão suporta IPv6.