summarylogtreecommitdiffstats
path: root/ip64set
blob: c862f8e5bacbc55400d1594bfa9eff480cd03e12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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