diff options
author | tv <tv@krebsco.de> | 2015-05-21 01:56:08 +0200 |
---|---|---|
committer | tv <tv@krebsco.de> | 2015-05-21 01:56:08 +0200 |
commit | 60e526dc9419d0bff89b05f4a98332aae48a0253 (patch) | |
tree | 484cb2c1075cdcabe8020ca40704f4d68f2b2fed /bin/netmask-to-prefix | |
parent | 6b976a36f5ef72d7463f848b55f250b807291bfd (diff) |
sh: functions -> bin/
Diffstat (limited to 'bin/netmask-to-prefix')
-rwxr-xr-x | bin/netmask-to-prefix | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/bin/netmask-to-prefix b/bin/netmask-to-prefix new file mode 100755 index 0000000..1c4dbeb --- /dev/null +++ b/bin/netmask-to-prefix @@ -0,0 +1,12 @@ +#! /bin/sh +set -euf + +netmask=$1 + +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 |