Ich habe eine Eingabedatei mit IPv4-Adressen:
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
Wie kann ich die Adressbereiche in Netzmasken konvertieren? Das Ergebnis sollte sein:
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
quelle
quelle
ipcalc
eingebauten. ;-)Antworten:
Zuerst müssen Sie ein Paket installieren, um die Konvertierung durchzuführen
Jetzt können Sie es mit diesem kleinen Skript tun (bitte beachten Sie, dass es nicht funktioniert, wenn Sie die Variable zitieren):
oder besser lesbar
quelle
Vielleicht nicht überraschend, gibt es dafür ein CPAN-Perl-Modul Net :: CIDR .
Also zum Beispiel:
Das Modul ist unter Ubuntu verfügbar, indem das
libnet-cidr-perl
Paket installiert wird .NB Ich habe Ihre Eingabe oder die Ergebnisse nicht validiert.
quelle