ddclient is a Perl update client that will update dynamic DNS entries. It is small and full-featured (including HTTPS support) requiring no additional modules. It has been reported to run on most *nix distros. Supported features include: operating as a daemon, manual and automatic updates, static and dynamic updates, optimized updates for multiple addresses, MX, wildcards, abuse avoidance, retrying failed updates, and sending update status to syslog and through email.
They dropped their free accounts and now force those with legacy free accounts to manually update their account every month. They promised free accounts and ingratiated themselves with many router. This is the officially supported OpenDNS Windows client, which sends your network's new IP Address to OpenDNS whenever it should change. Mac IP Updater. This is the officially supported OpenDNS Mac client, which sends your network's new IP Address to OpenDNS whenever it should change.
ddclient is a Perl based client used to update DNS entries. This client works with all of our services as well as services provided by many of our competitors. ddclient was originally written by Paul Burry and is now maintained by a group of developers via a SourceForge project.
Acknowledgment: Much of the info here is extracted from the ddclient home page.
Download: The most recent version of ddclient should always be available here.
Warning: It is recommended to use one of the official Dyn Updater Clients. If you decide to use a third party update client, it should be configured to send using an HTTPS connection to protect the confidentiality of your data over the Internet. If you need to continue the use of HTTP, it is strongly recommended to use your update client key instead of your account password.
IP Detection
ddclient supports detecting the public IP address either directly from a hardware interface, from a status page provided by a NAT router, or via our CheckIP service. Due to this flexibility, ddclient can be used in almost any possible network configuration.
System Compatibility
ddclient is a Perl based script, and as such should be runnable on any system that supports Perl. Officially all “posix” style OSes are supported. This includes all Linux, Unix and BSD variants, including Mac OS X.
Configuration File
Update Client Configurator – Generate your conf file after reading how to run ddclient
Because ddclient supports multiple DDNS services, its configuration files can be fairly daunting. To help alleviate that, we’re providing stripped down ddclient.conf files which are restricted to just those services which we support.
Here is a basic template which provides the various options available.
Here is a minimal ddclient.conf file designed to update a single Dynamic DNS host plus a single Dyn Standard DNS host and using our CheckIP service to get the IP address:
Here is a third example which shows ddclient configured to get it’s IP address from the status page provided by a router. Note that here we’ve set the daemon sleep period to 60 seconds (the smallest value ddclient accept as a sleep value).
Secure Updates
Since 3.7.0, ddclient support ssl updates. To use ssl, put “ssl=yes” in your configuration and make sure you have IO::Socket::SSL.
On debian, you need libio-socket-ssl-perl to have IO::Socket::SSL
Issues To Be Aware Of
The DynDNS update protocol supports values of “NOCHG” for the MX, BACKMX, and WILDCARD options, but ddclient does not support these values. Entering these values in the ddclient.conf file will result in ddclient not setting those options in the update command at all.
The DynDNS protocol specification has the option as BACKMX, but in the ddclient.conf file this is specified using the option “BACKUPMX”. ddclient does send the correct parameter in the update command, you just need to be sure to use the ddclient version of the option in the config file.
ddclient can be run either daemon mode, or as a single shot update fired off from crontab or other similar process. When using it in conjunction with CheckIP or monitoring a hardware interface you should always run it in daemon mode.