summaryrefslogtreecommitdiff
path: root/src/validators/ipv4-range
diff options
context:
space:
mode:
Diffstat (limited to 'src/validators/ipv4-range')
-rwxr-xr-xsrc/validators/ipv4-range30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/validators/ipv4-range b/src/validators/ipv4-range
new file mode 100755
index 000000000..0d707d6c5
--- /dev/null
+++ b/src/validators/ipv4-range
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# snippet from https://stackoverflow.com/questions/10768160/ip-address-converter
+ip2dec () {
+ local a b c d ip=$@
+ IFS=. read -r a b c d <<< "$ip"
+ printf '%d\n' "$((a * 256 ** 3 + b * 256 ** 2 + c * 256 + d))"
+}
+
+# This only works with real bash (<<<) - split IP addresses into array with
+# hyphen as delimiter
+readarray -d - -t strarr <<< $1
+
+ipaddrcheck --is-ipv4-single ${strarr[0]}
+if [ $? -gt 0 ]; then
+ exit 1
+fi
+
+ipaddrcheck --is-ipv4-single ${strarr[1]}
+if [ $? -gt 0 ]; then
+ exit 1
+fi
+
+start=$(ip2dec ${strarr[0]})
+stop=$(ip2dec ${strarr[1]})
+if [ $start -ge $stop ]; then
+ exit 1
+fi
+
+exit 0