Eu tenho um arquivo de entrada com endereços 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
Como posso converter os intervalos de endereços em máscaras de rede? O resultado deve 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
fonte
fonte
ipcalc
builtin. ;-)Respostas:
Primeiro você precisará instalar um pacote para fazer a conversão
Agora você pode fazer isso com este pequeno script (observe que ele não funciona se você citar a variável):
ou mais facilmente
fonte
Talvez não seja de surpreender que exista um módulo CPAN perl Net :: CIDR para isso.
Então, por exemplo:
O módulo está disponível no Ubuntu instalando o
libnet-cidr-perl
pacote.NB : Não validei sua entrada ou os resultados.
fonte