zapret/ipset/create_ipset.sh

46 lines
1.1 KiB
Bash
Raw Normal View History

2016-02-15 16:34:45 +03:00
#!/bin/sh
# create ipset from resolved ip's
SCRIPT=$(readlink -f $0)
EXEDIR=$(dirname $SCRIPT)
2019-03-06 15:52:25 +03:00
IPSET_OPT="hashsize 131072 maxelem 524288"
2019-04-06 16:08:14 +03:00
IP2NET=$EXEDIR/../ip2net/ip2net
2016-02-15 16:34:45 +03:00
. "$EXEDIR/def.sh"
2019-05-07 18:59:57 +03:00
2016-03-04 12:03:34 +03:00
create_ipset()
{
2019-04-06 16:08:14 +03:00
local IPSTYPE
if [ -x $IP2NET ]; then
IPSTYPE=hash:net
else
IPSTYPE=$1
fi
ipset flush $2 2>/dev/null || ipset create $2 $IPSTYPE $IPSET_OPT
for f in "$3" "$4"
2016-02-15 16:34:45 +03:00
do
2019-05-07 18:59:57 +03:00
zzexist "$f" && {
if [ -x "$IP2NET" ]; then
2019-04-06 16:08:14 +03:00
echo Adding to ipset $2 \($IPSTYPE , ip2net\) : $f
if [ -f "$ZIPLIST_EXCLUDE" ] ; then
2019-05-07 18:59:57 +03:00
zzcat "$f" | grep -vxFf "$ZIPLIST_EXCLUDE" | "$IP2NET" | sed -nre "s/^.+$/add $2 &/p" | ipset -! restore
2019-04-06 16:08:14 +03:00
else
2019-05-07 18:59:57 +03:00
zzcat "$f" | "$IP2NET" | sed -nre "s/^.+$/add $2 &/p" | ipset -! restore
2019-04-06 16:08:14 +03:00
fi
2016-11-26 20:01:33 +03:00
else
2019-04-06 16:08:14 +03:00
echo Adding to ipset $2 \($IPSTYPE\) : $f
if [ -f "$ZIPLIST_EXCLUDE" ] ; then
2019-05-07 18:59:57 +03:00
zzcat "$f" | grep -vxFf "$ZIPLIST_EXCLUDE" | sort -u | sed -nre "s/^.+$/add $2 &/p" | ipset -! restore
2019-04-06 16:08:14 +03:00
else
2019-05-07 18:59:57 +03:00
zzcat "$f" | sort -u | sed -nre "s/^.+$/add $2 &/p" | ipset -! restore
2019-04-06 16:08:14 +03:00
fi
2016-11-26 20:01:33 +03:00
fi
2016-02-15 16:34:45 +03:00
}
done
2017-08-13 13:09:08 +03:00
return 0
2016-03-04 12:03:34 +03:00
}
2019-05-07 18:59:57 +03:00
create_ipset hash:ip $ZIPSET "$ZIPLIST" "$ZIPLIST_USER"
create_ipset hash:ip $ZIPSET_IPBAN "$ZIPLIST_IPBAN" "$ZIPLIST_USER_IPBAN"