Cuando tenemos una lista o relación de IPs y queremos ordenarlas para trabajar con ellas, podemos hacerlo de diferentes maneras y en diferentes lenguajes. Normalmente he usado primero Python y luego la termnal de comandos por su rapidez, efectividad y simplicidad.
Ordenar una lista de IPs en Python
En Python y con unas pocas líneas podemos ordenar una lista de IPs.
# Leo las direcciones IP del archivo ips.log
with open("ips.log", "r") as archivo:
ips = archivo.readlines()
# Elimino los caracteres de nueva línea de cada dirección IP
ips = [ip.strip() for ip in ips]
# Ordeno las direcciones IP
ips_ordenadas = sorted(ips)
# Guardo las direcciones IP ordenadas en el archivo ips_ordenadas.log
with open("ips_ordenadas.log", "w") as archivo:
for ip in ips_ordenadas:
archivo.write(ip + "\n")
print("Las direcciones IP se han guardado ordenadas en el archivo 'ips_ordenadas.log'.")
Ordenar una lista de IPs en la terminal de Linux
Para ordenar y una lista de IPs en la consola y si las IPs mantienen todos los octetos el mismo formato de tres dígitos simplemente escribimos:
sort -V ips.log > ips_ordenadas.log
Aunque en las últimas versiones de Linux hace la ordenación bien aunque los octetos no tengan el mismo número de dígitos.
Pero si no lo ordenara correctamente usamos la siguiente estructura, también con el comando sort
.
sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n ips.log > ips_ordenadas.log