3 # save as /usr/local/bin/tdyndns
33 WEB=dyndns.example.com
36 FQDN=$HOSTNAME.$USERNAME.$ZONE
37 URL="http://$WEB/nic/update?hostname=$FQDN&myip="
38 WGET="wget -q --tries=2 --timeout=5"
40 if [ -z "$HOSTNAME" ] ; then
41 die "No hostname found."
46 NEWIPV4=$($WGET -O- http://ipv4.wtfismyip.com/text || $WGET -O- http://ipv4.icanhazip.com)
47 NEWIPV6=$($WGET -O- http://ipv6.wtfismyip.com/text || $WGET -O- http://ipv6.icanhazip.com)
49 if command -v dig >/dev/null ; then
50 OLDIPV4=$(dig -t a +short $FQDN @$NS)
51 OLDIPV6=$(dig -t aaaa +short $FQDN @$NS)
53 OLDIPV4=${OLDIPV4:-""}
54 OLDIPV6=${OLDIPV6:-""}
59 if [ -n "$OLDIPV4" -a -z "$NEWIPV4" ] ; then
60 $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV4}&offline=yes"
61 $DOIT logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV4"
65 if [ -n "$OLDIPV6" -a -z "$NEWIPV6" ] ; then
66 $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV6}&offline=yes"
67 $DOIT logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV6"
71 if [ -n "$NEWIPV4" -a "$NEWIPV4" != "$OLDIPV4" ] ; then
72 $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV4}"
73 $DOIT logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV4"
77 if [ -n "$NEWIPV6" -a "$NEWIPV6" != "$OLDIPV6" ] ; then
78 $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV6}"
79 $DOIT logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV6"