J'ai un fichier d'entrée avec des adresses 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
Comment puis-je convertir les plages d'adresses en masques de réseau? Le résultat devrait être:
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
la source
la source
ipcalc
intégrée. ;-)Réponses:
Vous devez d'abord installer un package pour effectuer la conversion
Vous pouvez maintenant le faire avec ce petit script (veuillez noter qu'il ne fonctionne pas si vous citez la variable):
ou plus lisible
la source
Sans surprise, il existe un module Perl CPAN Net :: CIDR pour cela.
Ainsi, par exemple:
Le module est disponible sur Ubuntu en installant le
libnet-cidr-perl
package.NB Je n'ai pas validé votre saisie ou les résultats.
la source