]> ToastFreeware Gitweb - toast/tdyndns.git/blob - bin/tdyndns_client
fix whitespace
[toast/tdyndns.git] / bin / tdyndns_client
1 #!/bin/sh
2
3 set -u
4
5 # debug?
6
7 if [ $# -gt 0 ] ; then
8         DOIT="echo "
9         set -x
10 else
11         DOIT=""
12 fi
13
14 # functions
15
16 die() {
17         echo "$1" >&2
18         exit 1
19 }
20
21 warn() {
22         echo "$1" >&2
23 }
24
25 # variables
26
27 USERNAME=sue
28 PASSWORD=hygCithOrs5
29 HOSTNAME=$(hostname)
30 ZONE=dyn.example.com
31 FQDN=$HOSTNAME.$USERNAME.$ZONE
32 NS=ns.example.com
33 URL="http://dyndns.example.com/nic/update?hostname=$FQDN&myip="
34
35 if [ -z "$HOSTNAME" ] ; then
36         die "No hostname found."
37 fi
38
39 # data
40
41 NEWIPV4=$(wget -q -O- http://ipv4.wtfismyip.com/text)
42 NEWIPV6=$(wget -q -O- http://ipv6.wtfismyip.com/text)
43
44 if command -v dig >/dev/null ; then
45         OLDIPV4=$(dig -t a    +short $FQDN @$NS)
46         OLDIPV6=$(dig -t aaaa +short $FQDN @$NS)
47 fi
48 OLDIPV4=${OLDIPV4:-""}
49 OLDIPV6=${OLDIPV6:-""}
50
51 # actions
52
53 # old ipv4 gone
54 if [ -n "$OLDIPV4" -a -z "$NEWIPV4" ] ; then
55         $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV4}&offline=yes"
56         logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV4"
57 fi
58
59 # old ipv6 gone
60 if [ -n "$OLDIPV6" -a -z "$NEWIPV6" ] ; then
61         $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${OLDIPV6}&offline=yes"
62         logger -t${0##*/} -perr -- "removing $FQDN / $OLDIPV6"
63 fi
64
65 # new ipv4
66 if [ -n "$NEWIPV4" -a "$NEWIPV4" != "$OLDIPV4" ] ; then
67         $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV4}"
68         logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV4"
69 fi
70
71 # newipv6
72 if [ -n "$NEWIPV6" -a "$NEWIPV6" != "$OLDIPV6" ] ; then
73         $DOIT wget -q -O/dev/null --user=$USERNAME --password=$PASSWORD "${URL}${NEWIPV6}"
74         logger -t${0##*/} -perr -- "updating $FQDN to $NEWIPV6"
75 fi