Saya memiliki file input dengan alamat 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
Bagaimana saya bisa mengubah rentang alamat menjadi netmasks? Hasilnya harus:
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
sumber
sumber
ipcalc
builtin. ;-)Jawaban:
Pertama, Anda perlu menginstal paket untuk melakukan konversi
Sekarang Anda dapat melakukannya dengan skrip kecil ini (harap dicatat bahwa skrip ini tidak berfungsi jika Anda mengutip variabelnya):
atau lebih mudah dibaca
sumber
Mungkin tidak mengherankan, ada modul perl CPAN Net :: CIDR untuk ini.
Jadi misalnya:
Modul ini tersedia di Ubuntu dengan menginstal
libnet-cidr-perl
paket.NB Saya belum memvalidasi input Anda atau hasilnya.
sumber