Ordenar y Comparar IP

Ordenar y comparar direcciones IP

Pegue su lista de direcciones IP (una por línea)
1
Salida
Los resultados ordenados aparecerán aquí...
Entendiendo Ordenacion de direcciones IP
TL;DR

La ordenacion de IP ordena las direcciones numericamente (no alfabeticamente) para que 10.0.0.2 aparezca antes de 10.0.0.10 — esencial para comparar ACLs, listas blancas y reglas de firewall.

Que es la ordenacion de IP?

La ordenacion de direcciones IP ordena una lista de direcciones IP por su valor numerico en lugar de su representacion como cadena de texto. Esta distincion es critica porque la ordenacion alfabetica (lexicografica) predeterminada utilizada por la mayoria de las herramientas de texto produce resultados sin sentido para direcciones IP.

Consideremos una lista simple: 10.0.0.1, 10.0.0.2, 10.0.0.10. Una ordenacion alfabetica coloca 10.0.0.10 entre 10.0.0.1 y 10.0.0.2 porque la cadena “10” viene antes de “2” caracter por caracter. Una ordenacion numerica coloca correctamente 10.0.0.10 despues de 10.0.0.2, coincidiendo con la estructura logica del espacio de direcciones.

Este problema se agrava con datos del mundo real. Un conjunto de reglas de firewall con cientos de direcciones IP se vuelve ilegible cuando se ordena alfabeticamente, y comparar dos listas de este tipo para encontrar diferencias se vuelve practicamente imposible.

Ordenacion numerica vs alfabetica

La causa raiz del problema es que las direcciones IP parecen cadenas de texto pero representan numeros. Cada direccion IPv4 es un entero sin signo de 32 bits mostrado como cuatro octetos decimales separados por puntos. La forma correcta de ordenarlas es comparar por valor numerico, no por codigos de caracteres.

La comparacion

DireccionPosicion alfabeticaPosicion numerica
10.0.0.11ra1ra
10.0.0.102da4ta
10.0.0.1003ra5ta
10.0.0.24ta2da
10.0.0.205ta3ra

La ordenacion alfabetica es incorrecta porque compara caracter por caracter: el caracter ‘1’ (ASCII 49) es menor que ‘2’ (ASCII 50), por lo que “10” se ordena antes de “2”, y “100” se ordena antes de “20”.

Como funciona la ordenacion numerica

La ordenacion numerica de IP convierte cada direccion a un unico entero de 32 bits para la comparacion:

  1. Analizar cada octeto como un entero: 10.0.0.2 se convierte en [10, 0, 0, 2]
  2. Convertir a un valor de 32 bits: 10 * 2^24 + 0 * 2^16 + 0 * 2^8 + 2 = 167,772,162
  3. Ordenar por los valores enteros

Alternativamente, se puede ordenar octeto por octeto: comparar los primeros octetos; si son iguales, comparar los segundos; y asi sucesivamente. Esto produce el mismo resultado sin calcular enteros grandes y es el enfoque mas intuitivo.

Para direcciones IPv6, se aplica el mismo principio pero con valores de 128 bits u 8 grupos de valores de 16 bits. Las direcciones deben normalizarse primero (expandiendo la abreviatura :: y eliminando ceros iniciales) para asegurar una comparacion consistente.

Deduplicacion

La ordenacion de IP se combina naturalmente con la deduplicacion — eliminar entradas duplicadas de una lista. Al trabajar con listas combinadas de multiples fuentes (diferentes exportaciones de firewall, multiples archivos de log o listas blancas fusionadas), los duplicados son comunes y deben eliminarse antes de que los datos sean utiles.

El flujo de trabajo estandar es:

  1. Analizar todas las IPs de la entrada
  2. Validar cada direccion (descartar entradas malformadas)
  3. Ordenar numericamente
  4. Deduplicar eliminando entradas identicas consecutivas (eficiente en una lista ordenada)
  5. Producir la lista limpia, ordenada y sin duplicados

Esto produce una representacion canonica que es facil de comparar, auditar e importar en otras herramientas.

Casos de uso comunes

  • Auditoria de reglas de firewall: Ordenar y deduplicar direcciones IP de configuraciones de firewall exportadas para identificar reglas redundantes, entradas faltantes o adiciones no autorizadas
  • Comparacion de ACLs: Ordenar dos listas de control de acceso antes de ejecutar un diff para mostrar claramente que direcciones fueron agregadas, eliminadas o modificadas entre versiones
  • Gestion de listas blancas: Mantener una lista blanca maestra ordenada y sin duplicados que pueda compararse contra configuraciones activas para detectar desviaciones
  • Analisis de logs: Ordenar IPs extraidas de logs de acceso para identificar rapidamente rangos, detectar patrones y agrupar direcciones relacionadas
  • Respuesta a incidentes: Fusionar indicadores de compromiso (IOCs) de IP de multiples feeds de inteligencia de amenazas en una unica lista de bloqueo ordenada y sin duplicados
  • Documentacion de redes: Producir inventarios de IP limpios y ordenados para documentacion de redes, auditorias de cumplimiento e informes de planificacion de capacidad

Prueba estos ejemplos

Ordenacion numerica correcta Válido

Ordenadas numericamente: .1, .2, .10, .20, .100. Cada direccion se compara octeto por octeto como enteros, produciendo un orden natural que coincide con la estructura de las redes.

10.0.0.1, 10.0.0.2, 10.0.0.10, 10.0.0.20, 10.0.0.100
Ordenacion alfabetica incorrecta Inválido

Ordenadas alfabeticamente: .1 < .10 < .100 < .2 < .20. Esto es incorrecto porque la comparacion de cadenas trata el caracter '1' como menor que '2', independientemente del valor numerico. La direccion 10.0.0.2 aparece erroneamente despues de 10.0.0.100.

10.0.0.1, 10.0.0.10, 10.0.0.100, 10.0.0.2, 10.0.0.20