35 lines
620 B
Bash
Executable File
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
|
|
|
|
|