summarylogtreecommitdiffstats
path: root/ip64set
diff options
context:
space:
mode:
authorThomas Heinemann2017-01-15 12:19:09 +0100
committerThomas Heinemann2017-01-15 12:19:09 +0100
commit49e2ffdd43ccbd51b301a3075792c42a08525cc7 (patch)
tree6f2c149da8ff0f98515e7a690428ef49a3cda807 /ip64set
downloadaur-49e2ffdd43ccbd51b301a3075792c42a08525cc7.tar.gz
initial release
Diffstat (limited to 'ip64set')
-rwxr-xr-xip64set30
1 files changed, 30 insertions, 0 deletions
diff --git a/ip64set b/ip64set
new file mode 100755
index 000000000000..c862f8e5bacb
--- /dev/null
+++ b/ip64set
@@ -0,0 +1,30 @@
+#!/bin/bash
+# ipset switch
+LINE=$*
+LINE6=`echo $LINE | sed s/f2b-/f2b6-/`
+
+RESULT=`echo $LINE | egrep " ([0-9]{1,3}\.){3}[0-9]{1,3}" | wc -l`
+RESULT6=`echo $LINE | egrep "(::[A-Fa-f0-9])|((:[A-Fa-f0-9]{1,4}){2,})" | wc -l `
+
+if [ $RESULT -eq "1" ]; then
+ # IPv4
+ ipset $LINE
+ ERRCODE=$?
+
+elif [ $RESULT6 -eq "1" ]; then
+ # IPv6
+ ipset $LINE6
+ ERRCODE=$?
+
+else
+ # IPv4 + IPv6
+ ipset $LINE
+ ERRCODE=$?
+ ipset $LINE6
+ if [ $? -ge "1" ]; then
+ ERRCODE=$?
+ fi
+
+fi
+
+exit $ERRCODE