summaryrefslogtreecommitdiff
path: root/scripts/cidr2ip
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/cidr2ip')
-rwxr-xr-xscripts/cidr2ip15
1 files changed, 15 insertions, 0 deletions
diff --git a/scripts/cidr2ip b/scripts/cidr2ip
new file mode 100755
index 0000000..474173e
--- /dev/null
+++ b/scripts/cidr2ip
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+if [ x"$1" = x ]; then
+ echo "Usage: $0 <cidr>" >&2; exit 255
+fi
+
+ip="$(echo "$1" | cut -d/ -f1)"
+len="$(echo "$1" | cut -d/ -f2)"
+if [ x"$((len%8))" != x0 ]; then
+ echo "Prefix length must be a multiple of 8" >&2; exit 255
+fi
+octets="$((len/8))"
+for x in `seq 1 $octets` ; do
+ echo $ip | cut -d. -f$x
+done | tr '\n' . | head -c -1 ; echo