nsupdate.cgi
This commit is contained in:
parent
c9d1675946
commit
cda1e80c1c
|
@ -0,0 +1,73 @@
|
|||
#!/bin/sh
|
||||
|
||||
KEY=/etc/bind/eoddns_key.key
|
||||
ZONE=ddns.entrouvert.org
|
||||
HOSTNAME=$REMOTE_USER.$ZONE
|
||||
|
||||
echo "Content-type: text/html"
|
||||
echo ""
|
||||
echo "<html><head><title>Whitelist des travailleurs</title></head>"
|
||||
echo "<body>"
|
||||
echo "<h2>Whitelist des travailleurs</h2>"
|
||||
|
||||
if echo "$QUERY_STRING" | grep -q '^bye'
|
||||
then
|
||||
BYE=/bin/true
|
||||
echo "<h3>retrait de $HOSTNAME</h3>"
|
||||
else
|
||||
BYE=/bin/false
|
||||
echo "<h3>$HOSTNAME = $REMOTE_ADDR</h3>"
|
||||
ADD="update add ${HOSTNAME}. 60 A $REMOTE_ADDR"
|
||||
ADD_WILD="update add *.${HOSTNAME}. 60 CNAME ${HOSTNAME}."
|
||||
fi
|
||||
|
||||
echo "<pre>"
|
||||
nsupdate -k $KEY << EONSUPDATE
|
||||
server ${ZONE}
|
||||
zone ${ZONE}
|
||||
update delete ${HOSTNAME}. A
|
||||
update delete *.${HOSTNAME}. CNAME
|
||||
${ADD}
|
||||
${ADD_WILD}
|
||||
show
|
||||
send
|
||||
answer
|
||||
EONSUPDATE
|
||||
echo "</pre>"
|
||||
|
||||
if ! $BYE; then
|
||||
echo "<h3>... et sera présente dans les divers pare-feux d'ici 5 minutes (au plus).</h3>"
|
||||
fi
|
||||
|
||||
if [ ! -z "$QUERY_STRING" ]; then
|
||||
NAME=`echo "$QUERY_STRING" | sed -n 's/^.*name=\([A-Za-z0-9_-]*\).*$/\1/p'`
|
||||
IP=`echo "$QUERY_STRING" | sed -n 's/^.*ip=\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*$/\1/p'`
|
||||
if [ ! -z "$NAME" ]; then
|
||||
NAME=${NAME}-${REMOTE_USER}.${ZONE}
|
||||
echo "<h2>Zone *.$NAME</h2>"
|
||||
|
||||
if [ ! -z "$IP" ]; then
|
||||
echo "<h3>*.$NAME = $IP</h3>"
|
||||
ADD_ZONE="update add ${NAME}. 60 A $IP"
|
||||
ADD_WILD_ZONE="update add *.${NAME}. 60 CNAME ${NAME}."
|
||||
else
|
||||
echo "<h3>retrait de *.$NAME</h3>"
|
||||
fi
|
||||
|
||||
echo "<pre>"
|
||||
nsupdate -k $KEY << EONSUPDATE
|
||||
server ${ZONE}
|
||||
zone ${ZONE}
|
||||
update delete ${NAME}. A
|
||||
update delete *.${NAME}. CNAME
|
||||
${ADD_ZONE}
|
||||
${ADD_WILD_ZONE}
|
||||
show
|
||||
send
|
||||
answer
|
||||
EONSUPDATE
|
||||
echo "</pre>"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "</body></html>"
|
Reference in New Issue