Conversor de IP para decimal
Converta um endereço IP para decimal, hexadecimal, binário e octal, ou digite qualquer um desses números para obter o IP de volta. Cada octeto aparece como 8 bits com os seus valores posicionais, para você acompanhar a conta.
Lido como decimal com pontos
| Octeto | 1286432168421 | Hex |
|---|---|---|
| 198 | 11000110 | C6 |
| 128+64+4+2 × 256³ = 3 321 888 768 | ||
| 51 | 00110011 | 33 |
| 32+16+2+1 × 256² = 3 342 336 | ||
| 100 | 01100100 | 64 |
| 64+32+4 × 256 = 25 600 | ||
| 77 | 01001101 | 4D |
| 64+8+4+1 × 1 = 77 | ||
| Total | ||
| = 3 325 256 781 | ||
Um IP, ou o número dele em decimal, hex, binário ou octal para obter o IP de volta. A conversão é feita no seu navegador; nada é enviado.
3325256781
O mesmo número em código
SELECT INET_ATON('198.51.100.77');3325256781SELECT '198.51.100.77'::inet - '0.0.0.0'::inet;3325256781int(ipaddress.ip_address('198.51.100.77'))3325256781ip2long('198.51.100.77')3325256781- Decimal com pontos
- Decimal
- Hex
- Octetos em binário
- Octal
- Octetos em hex
- Octetos em octal
- Num navegador (cada uma abre 198.51.100.77)
- Nome de DNS reverso
- Como IPv6 (mapeado)
- IPv4 → IPv6
Como converter um endereço IP para decimal?
Multiplique os quatro números por 256³, 256², 256 e 1 e some: 192.168.1.1 é 192 × 16 777 216 + 168 × 65 536 + 1 × 256 + 1 = 3 232 235 777.
Um endereço IPv4 é um número de 32 bits escrito em quatro pedaços de 8 bits, então a forma com pontos e a forma decimal são o mesmo valor. A documentação do MySQL usa 10.0.5.9 = 167773449 como exemplo.

Qualquer forma na entradaCom pontos, decimal, hex, binário, octal ou uma URL: o campo lê todas.Bits e valores posicionaisCada 1 soma o seu valor posicional: 128 + 64 + 4 + 2 = 198.× 256³, 256², 256, 1Cada octeto vezes o seu peso, depois o total.Todas as formas na saídaHex, binário, octal e as URLs que os navegadores aceitam, cada uma com botão de copiar.O númeroO endereço inteiro como um único número de 32 bits, pronto para copiar, com o tipo de endereço.Como converter decimal para endereço IP?
Divida por 16 777 216, depois divida o resto por 65 536 e então por 256: os três quocientes e o último resto são os quatro números, então 3232235777 é 192.168.1.1.
Digite o número no conversor e ele faz o mesmo, junto com hex, binário, octal e as formas que os navegadores aceitam. Números acima de 4 294 967 295 não são endereços IPv4; o conversor os lê como números IPv6 e avisa.
3 232 235 777÷ 16 777 216=192resto 11 010 30511 010 305÷ 65 536=168resto 257257÷ 256=1resto 11÷ 1=1resto 0192.168.1.1
Como converter um endereço IP para binário?
Escreva cada um dos quatro números como 8 bits com os valores posicionais 128, 64, 32, 16, 8, 4, 2 e 1: 192 é 128 + 64, portanto 11000000, e 192.168.1.1 é 11000000.10101000.00000001.00000001.
Percorra os valores posicionais da esquerda para a direita: escreva 1 e subtraia quando o valor cabe; senão, escreva 0. Para 168: 128 cabe (sobram 40), 64 não, 32 cabe (sobram 8), 16 não, 8 cabe, então 10101000. Para voltar do binário, some os valores posicionais dos 1.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | ||
|---|---|---|---|---|---|---|---|---|---|
| 192 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 128 + 64 |
| 168 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 128 + 32 + 8 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
11000000.
Como converter um endereço IP para hexadecimal?
Divida os 8 bits de cada octeto em duas metades de 4 e escreva cada metade como um dígito hex: 192 é 1100 0000, ou seja, C0, então 192.168.1.1 é 0xC0A80101.
Hex também é como o IPv6 escreve um endereço IPv4 embutido: ::ffff:c0a8:101 é 192.168.1.1. Os navegadores aceitam o número hex como host: http://0xC0A80101/ abre 192.168.1.1.
11000000C010101000A8000000010100000001010xC0A80101
4 bits = 1 dígito hex
Por que http://3232235777 abre 192.168.1.1?
Porque os navegadores leem um host feito só de números como um endereço IPv4 em qualquer das antigas formas do inet_aton, inclusive um único número decimal, e então carregam o endereço com pontos.
Cada parte pode ser decimal (o URL Standard), hex com 0x ou octal com um 0 à esquerda, e com menos de quatro partes a última preenche os bytes restantes. Então http://192.168.1/ abre 192.168.0.1, não 192.168.1.1. O ping e o curl aceitam as mesmas formas.
Números acima de 32 bits, um 8 ou 9 numa parte que começa com 0 e uma quinta parte são recusados.
| Digitado na barra de endereços | Abre |
|---|---|
http://3232235777/ | 192.168.1.1 |
http://0xC0A80101/ | 192.168.1.1 |
http://0300.0250.1.1/ | 192.168.1.1 |
http://127.1/ | 127.0.0.1 |
http://192.168.1/ | 192.168.0.1 |
http://4294967296/ | Recusado |
http://09/ | Recusado |
http://192.0.2.1.5/ | Recusado |
Por que formas alternativas de endereço IP importam para a segurança?
Porque um filtro que compara endereços como texto pode ser enganado: 2130706433, 0x7f.1, 127.1 e ::ffff:127.0.0.1 são todos 127.0.0.1, então os filtros precisam comparar o valor numérico, não a string.
A OWASP lista essas codificações entre as formas de contornar defesas contra SSRF. Bibliotecas já tiveram esse bug: os pacotes npm netmask e ip, o ipaddress do Python e o pacote net do Go leram errado zeros à esquerda ou formas alternativas em algum momento, e já foram corrigidos.
Faça o parsing com um leitor estrito, converta para número e só então compare faixas. Bloqueie também os endereços IPv4 mapeados das faixas bloqueadas.
deny 127.0.0.1
Comparado como texto
127.0.0.1bloqueado
2130706433passa
0x7f.1passa
127.1passa
::ffff:127.0.0.1passa
Comparado como número
127.0.0.12130706433 · bloqueado
21307064332130706433 · bloqueado
0x7f.12130706433 · bloqueado
127.12130706433 · bloqueado
::ffff:127.0.0.12130706433 · bloqueado
Como converter um endereço IPv6 para decimal?
Do mesmo jeito, com oito grupos de 16 bits: 2001:db8::1 é 42540766411282592856903984951653826561, um número de até 39 dígitos que exige BigInt em JavaScript.
Existem 2^128 endereços IPv6. Os números do JavaScript só guardam inteiros exatos até 2^53 − 1, então a aritmética comum arredonda valores IPv6 sem avisar. O int(ipaddress.ip_address(…)) do Python é exato.
2001:db8::1
42540766411282592856903984951653826561
exato (BigInt)
42540766411282592856903984951653826560
Number(): arredondado depois de 2^53
Como converter endereços IP em números no código e em bancos de dados?
Use as funções da própria plataforma com um tipo sem sinal: INET_ATON() do MySQL num INT UNSIGNED, a subtração de inet do PostgreSQL, int(ipaddress.ip_address(…)) do Python e >>> 0 depois dos deslocamentos em JavaScript.
Um inteiro de 32 bits com sinal não comporta endereços a partir de 128.0.0.0: o << do JavaScript dá -1062731519 para 192.168.1.1, e o ip2long() do PHP fica negativo em builds de 32 bits. Para IPv6, o MySQL usa INET6_ATON() e VARBINARY(16).
› SELECT INET_ATON('192.168.1.1'), INET_NTOA(3232235777); 3232235777 | 192.168.1.1
MySQL 8.4
› SELECT '192.168.1.1'::inet - '0.0.0.0'::inet, '0.0.0.0'::inet + 3232235777; 3232235777 | 192.168.1.1
PostgreSQL 16
› import ipaddress int(ipaddress.ip_address('192.168.1.1')), ipaddress.IPv4Address(3232235777) (3232235777, IPv4Address('192.168.1.1'))
Python ipaddress
› '192.168.1.1'.split('.').reduce((n, o) => (n << 8) | +o, 0) >>> 0 3232235777
JavaScript
› echo ip2long('192.168.1.1'), ' ', long2ip(3232235777); 3232235777 192.168.1.1
PHP 8
Perguntas frequentes
Quanto é 192.168.1.1 em decimal?
Qual é o maior valor decimal de um endereço IPv4?
Como converter 3232235777 de volta para endereço IP?
O que significa um zero à esquerda, como 010, num endereço IP?
Por que 192.168.1 abre 192.168.0.1?
Como converter um endereço IP para binário à mão?
Como guardar endereços IP como números no MySQL?
Por que o número do meu IP fica negativo em JavaScript ou PHP?
Um endereço IPv6 pode ser convertido para decimal?
http://0x7f000001/ é o mesmo que 127.0.0.1?
Sentiu falta de algo?Sugira um recurso ou uma nova ferramenta
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
Compressão IPv6
Abrevie ou expanda endereços IPv6 pela RFC 5952 e veja qual regra removeu cada zero
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