Tengo un archivo de entrada con direcciones IPv4:
94.228.16.0 - 94.228.25.255
94.241.136.0/24
94.241.136.0 - 94.241.136.255
94.29.128.0/17
94.29.128.0 - 94.29.191.0
94.29.192.0 - 94.29.255.0
94.74.181.0/24
94.74.181.0 - 94.74.181.31
94.74.181.128 - 94.74.181.255
¿Cómo puedo convertir los rangos de direcciones en máscaras de red? El resultado debería ser:
94.228.16.0/21
94.241.136.0/24
94.241.136.0/24
94.29.128.0/17
94.29.128.0/19
94.29.192.0/19
94.74.181.0/24
94.74.181.0/27
94.74.181.128/25
command-line
networking
bash
Oleksii
fuente
fuente
ipcalc
incorporado. ;-)Respuestas:
Primero deberá instalar un paquete para realizar la conversión
Ahora puede hacerlo con este pequeño script (tenga en cuenta que no funciona si cita la variable):
o más legible
fuente
Quizás no sea sorprendente, hay un módulo perl CPAN Net :: CIDR para esto.
Así por ejemplo:
El módulo está disponible en Ubuntu instalando el
libnet-cidr-perl
paquete.Nota : no he validado su entrada o los resultados.
fuente