dns-scripts/update-public-acl.sh

26 lines
843 B
Bash
Executable File

#!/bin/sh
. ./dns-functions.sh
IncludeFile="$1"
RemoteLocation="$2"
rm -f "$IncludeFile"
InstalledRoutes="$(echo "dump" | nc ::1 33123 | \
sed -e '/\(add route .* installed yes\|add xroute\)/!d')"
PublicSubs="$(echo "$InstalledRoutes" | \
sed -e '/\( from ::\/0\| from 0\.0\.0\.0\/0\)/d;s/.* from \(\S\+\).*/\t\1;/g')"
PrivatePrefix="\(192\.168\.\|172\.\(1[6-9]\|2[0-9]\|3[01]\)\.\|10\.\|[fF][cCdD][0-9a-fA-F]\{2\}:\)"
PublicSingles="$(echo "$InstalledRoutes" | \
sed -e '/\( from ::\/0\| from 0\.0\.0\.0\/0\)/!d;s/.* prefix \(\S\+\) .*/\1/g;'" \
"'/^'"$PrivatePrefix"'/d;/^\(0\.\|::\|64:ff9b::\)/d;s/^/\t/g;s/$/;/g')"
{
echo "acl icvpnrange {"
echo " icvpnlocal;"
echo "$PublicSubs"
echo "$(curl -s -S -f "$RemoteLocation""external.dnsserverips" | sed -e 's/^/\t/g;s/$/;/g')"
echo "$PublicSingles"
echo "};"
} > "$IncludeFile"