Conversor de IP a decimal
Convierta una dirección IP a decimal, hexadecimal, binario y octal, o escriba cualquiera de esos números para recuperar la IP. Cada octeto se dibuja como 8 bits con sus valores posicionales, para que pueda seguir la aritmética.
Leído como decimal con puntos
| 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 | ||
Una IP, o su número decimal, hex, binario u octal para recuperar la IP. Se convierte en su navegador; no se envía nada.
3325256781
El mismo número en 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 con puntos
- Decimal
- Hex
- Octetos en binario
- Octal
- Octetos en hex
- Octetos en octal
- En un navegador (cada una abre 198.51.100.77)
- Nombre de DNS inverso
- Como IPv6 (mapeada)
- IPv4 → IPv6
¿Cómo convertir una dirección IP a decimal?
Multiplique los cuatro números por 256³, 256², 256 y 1 y súmelos: 192.168.1.1 es 192 × 16 777 216 + 168 × 65 536 + 1 × 256 + 1 = 3 232 235 777.
Una dirección IPv4 es un número de 32 bits escrito en cuatro partes de 8 bits, así que la forma con puntos y la forma decimal son el mismo valor. La documentación de MySQL usa como ejemplo 10.0.5.9 = 167773449.

Cualquier forma de entradaCon puntos, decimal, hex, binario, octal o una URL: el campo los lee todos.Bits y valores posicionalesCada 1 suma su valor posicional: 128 + 64 + 4 + 2 = 198.× 256³, 256², 256, 1Cada octeto por su peso, y luego el total.Todas las formas de salidaHex, binario, octal y las URL que aceptan los navegadores, cada una con su botón de copiar.El númeroLa dirección completa como un solo número de 32 bits, lista para copiar, con el tipo de dirección que es.¿Cómo convertir un número decimal a dirección IP?
Divida entre 16 777 216, luego divida el resto entre 65 536 y después entre 256: los tres cocientes y el último resto son los cuatro números, así que 3232235777 es 192.168.1.1.
Escriba el número en el conversor y hará lo mismo, junto con hex, binario, octal y las formas que aceptan los navegadores. Los números mayores que 4 294 967 295 no son direcciones IPv4; el conversor los lee como números IPv6 y lo indica.
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
¿Cómo convertir una dirección IP a binario?
Escriba cada uno de los cuatro números como 8 bits con los valores posicionales 128, 64, 32, 16, 8, 4, 2 y 1: 192 es 128 + 64, es decir, 11000000, y 192.168.1.1 es 11000000.10101000.00000001.00000001.
Recorra los valores posicionales desde la izquierda: escriba 1 y reste cuando el valor cabe; si no, escriba 0. Para 168: 128 cabe (quedan 40), 64 no, 32 cabe (quedan 8), 16 no, 8 cabe, así que 10101000. Para volver desde binario, sume los valores posicionales de los 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.
¿Cómo convertir una dirección IP a hexadecimal?
Divida los 8 bits de cada octeto en dos mitades de 4 y escriba cada mitad como un dígito hex: 192 es 1100 0000, es decir, C0, así que 192.168.1.1 es 0xC0A80101.
Hex es también la forma en que IPv6 escribe una dirección IPv4 incrustada: ::ffff:c0a8:101 es 192.168.1.1. Los navegadores aceptan el número hex como host: http://0xC0A80101/ abre 192.168.1.1.
11000000C010101000A8000000010100000001010xC0A80101
4 bits = 1 dígito hex
¿Por qué http://3232235777 abre 192.168.1.1?
Porque los navegadores leen un host formado solo por números como una dirección IPv4 en cualquiera de las antiguas formas de inet_aton, incluido un único número decimal, y luego cargan la dirección con puntos.
Cada parte puede ser decimal (el URL Standard), hex con 0x u octal con un 0 a la izquierda, y con menos de cuatro partes la última ocupa los bytes restantes. Así, http://192.168.1/ abre 192.168.0.1, no 192.168.1.1. ping y curl aceptan las mismas formas.
Se rechazan los números de más de 32 bits, un 8 o un 9 en una parte que empieza por 0, y una quinta parte.
| Escrito en la barra de direcciones | 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/ | Rechazado |
http://09/ | Rechazado |
http://192.0.2.1.5/ | Rechazado |
¿Por qué importan para la seguridad las formas alternativas de una dirección IP?
Porque un filtro que compara direcciones como texto se puede engañar: 2130706433, 0x7f.1, 127.1 y ::ffff:127.0.0.1 son todas 127.0.0.1, así que los filtros deben comparar el valor numérico, no la cadena.
OWASP incluye estas codificaciones entre las formas de eludir las defensas contra SSRF. Hay bibliotecas que han tenido este fallo: los paquetes npm netmask e ip, ipaddress de Python y el paquete net de Go interpretaron mal en algún momento los ceros a la izquierda o las formas alternativas, y ya se corrigieron.
Analice con un lector estricto, convierta a número y luego compare rangos. Bloquee también las direcciones IPv4 mapeadas de los rangos bloqueados.
deny 127.0.0.1
Comparadas como texto
127.0.0.1se bloquea
2130706433pasa
0x7f.1pasa
127.1pasa
::ffff:127.0.0.1pasa
Comparadas como número
127.0.0.12130706433 · se bloquea
21307064332130706433 · se bloquea
0x7f.12130706433 · se bloquea
127.12130706433 · se bloquea
::ffff:127.0.0.12130706433 · se bloquea
¿Cómo convertir una dirección IPv6 a decimal?
Igual, con ocho grupos de 16 bits: 2001:db8::1 es 42540766411282592856903984951653826561, un número de hasta 39 dígitos que en JavaScript necesita BigInt.
Hay 2^128 direcciones IPv6. Los números de JavaScript solo guardan enteros exactos hasta 2^53 − 1, así que la aritmética normal redondea en silencio los valores IPv6. int(ipaddress.ip_address(…)) de Python es exacto.
2001:db8::1
42540766411282592856903984951653826561
exacto (BigInt)
42540766411282592856903984951653826560
Number(): redondeado a partir de 2^53
¿Cómo convertir direcciones IP a números en código y bases de datos?
Use las funciones propias de cada plataforma con un tipo sin signo: INET_ATON() de MySQL en un INT UNSIGNED, la resta de inet de PostgreSQL, int(ipaddress.ip_address(…)) de Python y >>> 0 después de los desplazamientos en JavaScript.
Un entero de 32 bits con signo no puede guardar las direcciones desde 128.0.0.0: << de JavaScript da -1062731519 para 192.168.1.1, y ip2long() de PHP da negativos en compilaciones de 32 bits. Para IPv6, MySQL usa INET6_ATON() y 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
Preguntas frecuentes
¿Cuánto es 192.168.1.1 en decimal?
¿Cuál es el mayor valor decimal de una dirección IPv4?
¿Cómo convierto 3232235777 de vuelta a una dirección IP?
¿Qué significa un cero a la izquierda, como 010, en una dirección IP?
¿Por qué 192.168.1 abre 192.168.0.1?
¿Cómo pasar una dirección IP a binario a mano?
¿Cómo guardar direcciones IP como números en MySQL?
¿Por qué mi número de IP sale negativo en JavaScript o PHP?
¿Se puede convertir una dirección IPv6 a decimal?
¿http://0x7f000001/ es lo mismo que 127.0.0.1?
¿Le falta algo?Sugiera una función o una herramienta nueva
Herramientas relacionadas
IPv6 a IPv4
Encuentre la IPv4 dentro de una dirección IPv6: mapeada, NAT64, 6to4, Teredo e ISATAP, bit a bit
IPv4 a IPv6
Todas las formas IPv6 de una dirección IPv4: mapeada, NAT64 y 6to4, cada una marcada en uso o poco usada
Compresión IPv6
Abrevie o expanda direcciones IPv6 según la RFC 5952 y vea qué regla quitó cada cero
Cuál Es Mi IP
Su IP pública IPv4 e IPv6 a la vez, con la red, la ubicación y una comprobación de VPN
Test IPv6
Vea si su IPv6 funciona, qué familia usa su navegador y si un sitio tiene IPv6
Calculadora de Subredes
Red, broadcast, hosts utilizables y máscaras de cualquier bloque IPv4 o IPv6, con VLSM, divisiones y subredes en la nube
DNS Inverso
Encuentra hostnames asociados a cualquier dirección IP mediante registros PTR
Consulta DNS
Todos los registros DNS desde los servidores del dominio, junto a la caché de Google y Cloudflare