evenet/lib/cidr.bash

21 lines
400 B
Bash

mask2cidr() {
local netmask=$1
local nbits=0
IFS=.
for dec in "$netmask"; do
case $dec in
255) let nbits+=8;;
254) let nbits+=7;;
252) let nbits+=6;;
248) let nbits+=5;;
240) let nbits+=4;;
224) let nbits+=3;;
192) let nbits+=2;;
128) let nbits+=1;;
0);;
*) die "Error: $dec is not recognised"
esac
done
echo "$nbits"
}