3 # save as /usr/local/bin/tdyndns
33 FQDN=$HOSTNAME.$USERNAME.$ZONE
35 URL="http://dyndns.example.com/nic/update?hostname=$FQDN&myip="
37 if [ -z "$HOSTNAME" ] ; then
38 die "No hostname found."
43 # alternative: -4 icanhazip.com, -6 icanhazip.com or ipv{4,6}.icanhazip.com
44 NEWIPV4=$(wget -q -O- http://ipv4.wtfismyip.com/text)
45 NEWIPV6=$(wget -q -O- http://ipv6.wtfismyip.com/text)
47 if command -v dig >/dev/null ; then
48 OLDIPV4=$(dig -t a +short $FQDN @$NS)
49 OLDIPV6=$(dig -t aaaa +short $FQDN @$NS)
51 OLDIPV4=${OLDIPV4:-""}
52 OLDIPV6=${OLDIPV6:-""}
57 if [ -n "$OLDIPV4" -a -z "$NEWIPV4" ] ; then
58 $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV4}&offline=yes"
59 logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV4"
63 if [ -n "$OLDIPV6" -a -z "$NEWIPV6" ] ; then
64 $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV6}&offline=yes"
65 logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV6"
69 if [ -n "$NEWIPV4" -a "$NEWIPV4" != "$OLDIPV4" ] ; then
70 $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV4}"
71 logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV4"
75 if [ -n "$NEWIPV6" -a "$NEWIPV6" != "$OLDIPV6" ] ; then
76 $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV6}"
77 logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV6"