====== DynDNS Updates without a Client ======
My new hosting provide Strato offers DynDNS.
I was searching for a DynDNS client for my OpenSolaris Home Server, but a small bash script does the job as good as any other client.
#! /bin/bash
. ${HOME}/.dyndns.cfg
DOMAINS=$(cat ${HOME}/.dyndns.domains)
echo "$(date '+%Y-%m-%d %H:%M') $(basename $0)"
for domain in ${DOMAINS}; do
echo -n " ${domain} - "
curl --silent --show-error --insecure --user ${LOGIN} "${UPDATE_URL}?hostname=${domain}"
done
First, the login credentials (the ''$LOGIN'' variable) and the server's URL (''$UPDATE_URL'') are read from the config file ''~/.dyndns.cfg''.
Here an example config file:
LOGIN="jdoe:secret"
UPDATE_URL="http://members.dyndns.org/nic/update" # DynDNS service
# UPDATE_URL="https://dyndns.strato.com/nic/update" # Strato's DynDNS service
The file ''.dyndns.domains'' contains all the domains which should be updated.
They must be whitespace separated, I recomment to put one domain per line.
In the for loop, curl is used to update the domains.
Currently, I use the switch ''--insecure'' to disable the SSL certificate check.
As soon a I found out how to download the server certificate and check it in the correct way I will let you know in an update.
This script is part of my scripts collection, so you can find the latest version at http://bitbucket.org/andunix/scripts/src/tip/bin/cron-dyndns-update.
You can find the DynDNS protocol specification at http://www.dyndns.com/developers/specs/syntax.html.
{{tag>homeserver opensolaris script scripting sysadmin}}