taap.digitalferramentas para engenharia de redes

Conversor de IP: decimal, binário, hex e inteiro

Cole o endereço em qualquer formato: 192.168.1.1, 11000000.10101000.00000001.00000001, 0xC0A80101 ou 3232235777. A ferramenta reconhece o formato e converte para os outros.

ipconv

Está começando? A versão simplificada no vpsa.com.br explica cada passo sem termos técnicos.

Um endereço, quatro representações

Um IPv4 é um inteiro sem sinal de 32 bits. A notação pontuada divide esses bits em quatro octetos e escreve cada um em decimal. As outras formas aparecem em situações bem concretas: binário para subnetting, hexadecimal em capturas de pacote e em logs de kernel, inteiro em bancos de dados e bases de geolocalização.

Exemplo: 192.168.1.1

OctetoDecimalBinárioHex
119211000000C0
216810101000A8
310000000101
410000000101
inteiro = 192 × 256³ + 168 × 256² + 1 × 256 + 1 = 3.232.235.777
hex = 0xC0A80101

Decimal para binário de cabeça

Use os pesos 128, 64, 32, 16, 8, 4, 2, 1. Para 168: cabe 128 (sobra 40), não cabe 64, cabe 32 (sobra 8), não cabe 16, cabe 8 (sobra 0). Bits: 10101000. Com prática, os valores de máscara (128, 192, 224, 240, 248, 252, 254, 255) ficam automáticos.

Onde cada formato aparece

  • Binário: cálculo de sub-redes, sumarização e wildcards. A fronteira entre rede e host só é visível em binário.
  • Hexadecimal: saída do Wireshark e do tcpdump -X, arquivo /proc/net/tcp do Linux (em ordem de bytes do host, ou seja, invertido em x86), máscara em hex na saída do ifconfig do BSD/macOS (netmask 0xffffff00).
  • Inteiro: colunas de banco de dados (armazenar IPv4 como inteiro facilita consultas por faixa com BETWEEN), bases GeoIP e APIs.

Na linha de comando

# Linux: hex para inteiro
printf '%d\n' 0xC0A80101          # 3232235777

# Python: ida e volta
python3 -c "import ipaddress as i; print(int(i.ip_address('192.168.1.1')))"
python3 -c "import ipaddress as i; print(i.ip_address(3232235777))"

# PostgreSQL: tipo nativo inet
SELECT '192.168.1.1'::inet - '0.0.0.0'::inet;   -- 3232235777

Cuidado com formatos ambíguos

A função inet_aton da libc aceita formatos antigos: ping 3232235777 e ping 0xC0A80101 funcionam no Linux, e octetos com zero à esquerda (010.1.1.1) podem ser lidos como octal (010 = 8). Esse comportamento já causou falhas de segurança em validadores de URL. Em configurações, escreva sempre a notação pontuada sem zeros à esquerda.

Tipo do endereço

Além da conversão, a ferramenta classifica o endereço: privado (RFC 1918), CGNAT (100.64.0.0/10, RFC 6598), loopback (127.0.0.0/8), link-local (169.254.0.0/16, usado quando o DHCP falha), multicast (224.0.0.0/4), reservado ou público. Isso ajuda a interpretar rapidamente um valor encontrado em um log ou em uma tabela de banco de dados.

Perguntas frequentes

Como converter IP para binário rapidamente?

Converta cada octeto separadamente usando os pesos 128, 64, 32, 16, 8, 4, 2, 1 e junte os quatro grupos de 8 bits com pontos.

Qual o maior valor inteiro de um IPv4?

4.294.967.295 (2³² − 1), que corresponde a 255.255.255.255.

Por que guardar IP como inteiro no banco?

Ocupa 4 bytes em vez de até 15 caracteres e permite buscar faixas com comparações numéricas simples e indexáveis.

Ferramenta para estudo e projeto. Valide a configuração em laboratório e com a documentação do fabricante antes de aplicar em produção.