bash/snippets/mask2cidr.sh
2018-04-30 02:53:44 +02:00

35 lines
620 B
Bash
Executable File

#!/usr/bin/env bash
# Function calculates number of bit in a netmask
#
mask2cidr() {
nbits=0
IFS=.
for dec in $1 ; 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);;
*) echo "Error: $dec is not recognised"; exit 1
esac
done
echo "$nbits"
}
mask=$1
cidr=$(mask2cidr $mask)
echo ""
echo "cidr: $cidr - mask: $mask"
echo ""
exit 0