summaryrefslogtreecommitdiffstats
path: root/lib/net.sh
blob: 518c955b6b0bb4355a0bc71d231a96c1ca3840e3 (plain)
1
2
3
4
5
6
7
8
9
net_netmask_to_prefix() {(
  binaryNetmask=$(echo $1 | sed 's/^/obase=2;/;s/\./;/g' | bc | tr -d \\n)
  binaryPrefix=$(echo $binaryNetmask | sed -n 's/^\(1*\)0*$/\1/p')
  if ! echo $binaryPrefix | grep -q .; then
    echo $0: bad netmask: $netmask >&2
    exit 4
  fi
  printf %s $binaryPrefix | tr -d 0 | wc -c
)}