X-Git-Url: https://git.toastfreeware.priv.at/toast/tdyndns.git/blobdiff_plain/8368008d3fee4e1535c3b2f397067cbfb8a751fa..b58aebb1854c02e253bdad0168a48c7198b91b18:/bin/client/tdyndns_client diff --git a/bin/client/tdyndns_client b/bin/client/tdyndns_client new file mode 100755 index 0000000..7d4e9e0 --- /dev/null +++ b/bin/client/tdyndns_client @@ -0,0 +1,76 @@ +#!/bin/sh + +set -u + +# debug? + +if [ $# -gt 0 ] ; then + DOIT="echo " + set -x +else + DOIT="" +fi + +# functions + +die() { + echo "$1" >&2 + exit 1 +} + +warn() { + echo "$1" >&2 +} + +# variables + +USERNAME=sue +PASSWORD=hygCithOrs5 +HOSTNAME=$(hostname) +ZONE=dyn.example.com +FQDN=$HOSTNAME.$USERNAME.$ZONE +NS=ns.example.com +URL="http://dyndns.example.com/nic/update?hostname=$FQDN&myip=" + +if [ -z "$HOSTNAME" ] ; then + die "No hostname found." +fi + +# data + +# alternative: -4 icanhazip.com, -6 icanhazip.com or ipv{4,6}.icanhazip.com +NEWIPV4=$(wget -q -O- http://ipv4.wtfismyip.com/text) +NEWIPV6=$(wget -q -O- http://ipv6.wtfismyip.com/text) + +if command -v dig >/dev/null ; then + OLDIPV4=$(dig -t a +short $FQDN @$NS) + OLDIPV6=$(dig -t aaaa +short $FQDN @$NS) +fi +OLDIPV4=${OLDIPV4:-""} +OLDIPV6=${OLDIPV6:-""} + +# actions + +# old ipv4 gone +if [ -n "$OLDIPV4" -a -z "$NEWIPV4" ] ; then + $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV4}&offline=yes" + logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV4" +fi + +# old ipv6 gone +if [ -n "$OLDIPV6" -a -z "$NEWIPV6" ] ; then + $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV6}&offline=yes" + logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV6" +fi + +# new ipv4 +if [ -n "$NEWIPV4" -a "$NEWIPV4" != "$OLDIPV4" ] ; then + $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV4}" + logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV4" +fi + +# newipv6 +if [ -n "$NEWIPV6" -a "$NEWIPV6" != "$OLDIPV6" ] ; then + $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV6}" + logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV6" +fi