Validador IPv6
Valida direcciones IPv6 (formatos completo y comprimido)
Input IPv6 Addresses
Validation Results
Validation results will appear here
El Validador de IPv6 realiza una validación exhaustiva de direcciones IPv6 en todas las representaciones válidas: notación hexadecimal completa de 8 grupos, abreviación comprimida con ::, formato mixto compatible con IPv4 y direcciones con zone ID. Ingresa una dirección como 2001:db8::1 o 2001:db8::1::2 y obtén un resultado inmediato de válido/inválido con la forma canónica, detalles del error y clasificación del tipo de dirección (global unicast, link-local, ULA, multicast o loopback).
Entendiendo la sintaxis de direcciones IPv6
Las direcciones IPv6 tienen 128 bits de longitud, escritas como ocho grupos de cuatro dígitos hexadecimales separados por dos puntos -- algo como 2001:0db8:0000:0000:0000:0000:0000:0001. Eso es lo suficientemente verboso como para que se desarrollara una notación abreviada: puedes omitir los ceros a la izquierda dentro de cada grupo y reemplazar la secuencia consecutiva más larga de grupos todo-cero con ::. Así, esa misma dirección se convierte en 2001:db8::1, que es mucho más fácil de leer y escribir. La desventaja de esta flexibilidad es que la misma dirección puede escribirse de muchas formas diferentes, y no todas son válidas.
Las reglas para lo que constituye una dirección IPv6 válida están definidas principalmente en RFC 4291, con directrices de formato canónico en RFC 5952. El error más común es usar :: dos veces en la misma dirección. Dado que :: puede representar cualquier cantidad de grupos consecutivos de cero, permitir dos secuencias :: haría imposible determinar cuántos grupos reemplaza cada una. La dirección 2001::1::2 es ambigua -- ¿el primer :: representa dos grupos de cero y el segundo tres, o viceversa? El RFC resuelve esto permitiendo exactamente un :: por dirección.
Otros errores comunes incluyen grupos hexadecimales que exceden cuatro dígitos (como ::12345), caracteres no hexadecimales (como gggg) y conteos de grupos incorrectos. Cuando no hay compresión ::, la dirección debe contener exactamente ocho grupos separados por dos puntos. Con ::, el número total de grupos escritos explícitamente más los grupos comprimidos debe ser igual a ocho. Este validador verifica todas estas reglas y reporta el error específico para cualquier dirección que falle, facilitando identificar y corregir el problema.
Cómo validar una dirección IPv6
- Ingresa una o más direcciones IPv6 en cualquier formato de notación válido
- Haz clic en Validate para verificar cada dirección contra las reglas de formato RFC 4291 y RFC 5952
- Revisa los resultados que muestran el estado válido/inválido, la forma canónica y el error específico para cualquier dirección rechazada
- Para direcciones válidas, consulta el tipo de dirección (global unicast, link-local, multicast, loopback, etc.)
Ejemplos de validación de IPv6
| Entrada | Válida | Formato | Notas |
|---|---|---|---|
2001:0db8:0000:0000:0000:0000:0000:0001 | Sí | Completo | Los 8 grupos con ceros a la izquierda |
2001:db8::1 | Sí | Comprimido | Grupos consecutivos de cero colapsados |
::1 | Sí | Comprimido | Dirección loopback |
:: | Sí | Comprimido | Dirección no especificada (todos ceros) |
::ffff:192.168.1.1 | Sí | Mixto | Dirección IPv6 mapeada a IPv4 |
fe80::1%eth0 | Sí | Con zone ID | Link-local con alcance de interfaz |
2001:db8::1::2 | No | -- | No se permiten múltiples secuencias :: |
2001:db8:gggg::1 | No | -- | gggg no es hexadecimal válido |
2001:db8:1:2:3:4:5:6:7 | No | -- | 9 grupos (el máximo es 8) |
2001:db8::12345 | No | -- | El grupo excede 4 dígitos hex (máximo ffff) |
2001:db8 | No | -- | Solo 2 grupos sin compresión :: |
Clasificación de tipos de direcciones IPv6
| Dirección / Prefijo | Tipo | RFC | Uso |
|---|---|---|---|
::1/128 | Loopback | RFC 4291 | Pruebas en la máquina local |
::/128 | No especificada | RFC 4291 | Origen antes de la asignación de dirección |
2000::/3 | Global Unicast | RFC 4291 | Direcciones públicas enrutables en internet |
fe80::/10 | Link-Local | RFC 4291 | Comunicación en un solo enlace, autoconfigurada |
fc00::/7 | Unique Local (ULA) | RFC 4193 | Redes privadas (similar a RFC 1918) |
ff00::/8 | Multicast | RFC 4291 | Comunicación de uno a muchos |
::ffff:0:0/96 | IPv4-Mapped | RFC 4291 | Direcciones IPv4 embebidas en IPv6 |
64:ff9b::/96 | NAT64 Well-Known | RFC 6052 | Traducción IPv4/IPv6 |
Cuándo usar el validador de IPv6
- Configuración dual-stack -- valida direcciones IPv6 antes de agregar registros AAAA, reglas de firewall o configuraciones de router junto a la configuración IPv4 existente
- Desarrollo de aplicaciones -- verifica que la entrada IPv6 enviada por usuarios en formularios web y APIs sea sintácticamente correcta antes de procesarla o almacenarla
- Auditoría de archivos de configuración -- escanea archivos de configuración en busca de direcciones IPv6 malformadas que podrían evitar que los servicios se enlacen o conecten
- Parseo de logs e importación de datos -- filtra direcciones IPv6 válidas de fuentes de datos mixtas que pueden contener cadenas de direcciones truncadas o corruptas
- Planificación de transición a IPv6 -- valida direcciones en planes de migración para asegurar que cumplan con la notación correcta antes del despliegue
- Revisión de políticas de seguridad -- verifica que las direcciones IPv6 en ACLs y reglas de grupos de seguridad sean sintácticamente válidas y del tipo esperado
Cómo funciona la validación de direcciones IPv6
Reglas de compresión (RFC 5952)
Las direcciones IPv6 pueden escribirse de múltiples formas equivalentes. El validador acepta todas las formas válidas e identifica la representación canónica:
- Supresión de ceros a la izquierda:
2001:0db8puede escribirse como2001:db8 - Compresión de grupos consecutivos de cero:
2001:db8:0:0:0:0:0:1puede escribirse como2001:db8::1 - Solo un
::permitido: solo se permite una secuencia::por dirección, porque múltiples harían la expansión ambigua - La secuencia más larga a la izquierda: cuando existen múltiples secuencias de ceros de igual longitud, RFC 5952 recomienda comprimir la que está más a la izquierda
Manejo de Zone ID
Las direcciones link-local (fe80::/10) requieren un zone ID para especificar a qué interfaz de red aplican, ya que la misma dirección link-local puede existir en múltiples interfaces simultáneamente. El zone ID sigue un separador %:
fe80::1%eth0 (nombre de interfaz en Linux)
fe80::1%15 (índice de interfaz en Windows)
fe80::1%en0 (nombre de interfaz en macOS)
El validador acepta zone IDs y los valida por separado de la porción de dirección. Los zone IDs solo son significativos para direcciones link-local y multicast con alcance.
Consejos prácticos para la validación de IPv6
La validación de IPv6 en aplicaciones requiere más reflexión que la de IPv4 debido a las muchas representaciones válidas. Dos direcciones que lucen completamente diferentes pueden ser la misma: 2001:0db8:0000:0000:0000:0000:0000:0001 y 2001:db8::1 son idénticas. Si tu aplicación almacena direcciones IPv6 y necesita detectar duplicados o realizar búsquedas, siempre normaliza a una forma canónica antes de comparar. La mejor práctica es expandir a la forma completa para almacenamiento y comparación, luego comprimir para visualización.
Al validar entrada de usuarios en formularios web, recuerda que los navegadores y sistemas operativos a veces incluyen zone IDs en las direcciones link-local automáticamente. Un usuario podría pegar fe80::1%eth0 desde la salida de su terminal. Tu validador necesita manejar el zone ID con gracia -- ya sea aceptarlo y eliminarlo, o aceptarlo y almacenarlo, dependiendo de tu caso de uso. Rechazar zone IDs directamente frustrará a los usuarios que están copiando direcciones de la salida legítima del sistema.
Ten en cuenta que las direcciones mapeadas a IPv4 como ::ffff:192.168.1.1 son IPv6 válido pero tienen implicaciones de seguridad. Las aplicaciones que aceptan entrada IPv6 y luego extraen la dirección IPv4 embebida deben validar ambas partes. Un atacante podría crear una dirección IPv4-mapped maliciosa para eludir las verificaciones de validación IPv4 en aplicaciones dual-stack. Si tu aplicación no necesita manejar direcciones IPv4-mapped, considera rechazarlas explícitamente.
Preguntas frecuentes
¿Por qué mi dirección IPv6 con dos :: falla la validación?
La abreviación :: reemplaza uno o más grupos consecutivos de ceros. Si se permitieran dos secuencias ::, el parser no podría determinar cuántos grupos de cero representa cada una. Por ejemplo, 2001::1::2 podría expandirse a múltiples direcciones válidas diferentes. El RFC exige exactamente un :: por dirección.
¿Es ::ffff:192.168.1.1 una dirección IPv6 válida?
Sí. Esta es una dirección IPv6 mapeada a IPv4 definida en RFC 4291. El prefijo ::ffff: seguido de una dirección IPv4 en notación decimal con puntos es usado por aplicaciones dual-stack para representar conexiones IPv4 dentro de estructuras de datos IPv6. El validador reconoce esta notación mixta y valida tanto el prefijo IPv6 como la porción IPv4 embebida.
¿Cuál es la diferencia entre :: y ::1?
:: es la dirección no especificada (los 128 bits son cero), equivalente al 0.0.0.0 de IPv4. Se usa como dirección de origen antes de que un dispositivo tenga una dirección asignada. ::1 es la dirección loopback (127 ceros seguidos de un solo bit 1), equivalente al 127.0.0.1 de IPv4. Se usa para comunicación en la máquina local.
¿Son válidos los dígitos hexadecimales en mayúsculas en direcciones IPv6?
Sí, tanto 2001:DB8::1 como 2001:db8::1 son sintácticamente válidos y representan la misma dirección. Sin embargo, RFC 5952 recomienda minúsculas para la representación canónica. Este validador acepta ambos casos pero puede indicar la forma canónica en minúsculas.
¿Cómo valido una dirección IPv6 con longitud de prefijo como 2001:db8::/32?
Esta herramienta valida direcciones IPv6 sin notación de prefijo. Para validar una dirección con longitud de prefijo, usa la Calculadora de subredes IPv6 que acepta notación de prefijo y valida tanto la dirección como la longitud del prefijo.
Herramientas relacionadas
- Validador de IPv4 - Valida direcciones IPv4 en formato estricto de cuatro octetos
- Expandir ↔ Comprimir IPv6 - Convierte entre notación IPv6 expandida y comprimida
- Conversor IPv6 ↔ BigInt - Convierte direcciones IPv6 a/desde enteros de 128 bits
- Detector de IPv6 Unique Local/Link-Local - Detecta el alcance y tipo de dirección IPv6
- Detector de familia de direcciones - Detecta si una dirección es IPv4, IPv6 o inválida