IP Online Check DNS patch
Zur Navigation springen
Zur Suche springen
#!/bin/bash HOSTNAME="basti.xinux.lan" LOG=/tmp/$HOSTNAME-update.log IP1=10.82.1.111 IP2=10.82.1.88 TTL=1 SERVER="10.80.0.2" KEY="7oVy81obzGnFLuem6F7gHQ==" KEYNAME="xinux.key" IP=$1 function test-ip(){ ping -q -w 1 -c 1 $1 > /dev/null } function host-ip(){ host $1 | cut -f 4 -d " " } function check-dns(){ for IPS in $(host-ip $HOSTNAME) do test $IPS == "$1" && return 0 done return 1 } function dns-patch(){ echo "Running ddns..." >> $LOG date >> $LOG nsupdate -v >> $LOG << EOF key $KEYNAME $KEY server $SERVER update $1 $HOSTNAME $TTL A $2 send EOF cat >> $LOG << EOF 1,1 Top test $IPS == "$1" && return 0 done return 1 } function dns-patch(){ echo "Running ddns..." >> $LOG date >> $LOG nsupdate -v >> $LOG << EOF key $KEYNAME $KEY server $SERVER update $1 $HOSTNAME $TTL A $2 send EOF cat >> $LOG << EOF key $KEYNAME $KEY server $SERVER update $1 $HOSTNAME $TTL A $2 send EOF } for IP in $IP1 $IP2 do echo test-ip $IP if test-ip $IP then echo "check-dns $IP" if ! check-dns $IP then echo dns-patch add $IP dns-patch add $IP fi else if check-dns $IP then echo dns-patch delete $IP dns-patch delete $IP fi fi done