]> ToastFreeware Gitweb - toast/tdyndns.git/blobdiff - bin/client/tdyndns_client
try additional web service for current ip address(es)
[toast/tdyndns.git] / bin / client / tdyndns_client
index 6593a95ad2aa512fa99141f990acb3528369d652..1c04e34725d78eccf722f0f364651581f287e51e 100755 (executable)
@@ -7,7 +7,7 @@ set -u
 # debug?
 
 if [ $# -gt 0 ] ; then
-       DOIT="echo "
+       DOIT="echo I: "
        set -x
 else
        DOIT=""
@@ -16,12 +16,12 @@ fi
 # functions
 
 die() {
-       echo "$1" >&2
+       echo "E: $1" >&2
        exit 1
 }
 
 warn() {
-       echo "$1" >&2
+       echo "W: $1" >&2
 }
 
 # variables
@@ -33,6 +33,7 @@ ZONE=dyn.example.com
 FQDN=$HOSTNAME.$USERNAME.$ZONE
 NS=ns.example.com
 URL="http://dyndns.example.com/nic/update?hostname=$FQDN&myip="
+WGET="wget -q --tries=2 --timeout=5"
 
 if [ -z "$HOSTNAME" ] ; then
        die "No hostname found."
@@ -40,9 +41,8 @@ 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)
+NEWIPV4=$($WGET -O- http://ipv4.wtfismyip.com/text || $WGET -O- http://ipv4.icanhazip.com)
+NEWIPV6=$($WGET -O- http://ipv6.wtfismyip.com/text || $WGET -O- http://ipv6.icanhazip.com)
 
 if command -v dig >/dev/null ; then
        OLDIPV4=$(dig -t a    +short $FQDN @$NS)
@@ -55,24 +55,24 @@ OLDIPV6=${OLDIPV6:-""}
 
 # 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"
+       $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV4}&offline=yes"
+       $DOIT 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"
+       $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV6}&offline=yes"
+       $DOIT 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"
+       $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV4}"
+       $DOIT logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV4"
 fi
 
-# new ipv6
+# 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"
+       $DOIT $WGET -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV6}"
+       $DOIT logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV6"
 fi