See the AUTHORS file for information on the authors. See the ABOUT file for a brief description of ddnsu. To compile, run 'make'. Run ddnsu without arguments to see its options. The only options which are required are service (-S) and domain (-d) , though most dynamic dns providers will require you to provide your username and password. Examples: ./ddnsu -S dyndns.org -u test -p test -d test.dyndns.org ./ddnsu -S dyndns.org -u test -p test -d test-static.dyndns.org -s statdns ./ddnsu -S dyndns.org -u test -p test -d test1.customtest.dyndns.org -s custom ./ddnsu -S dyndns.org -u test -p test -d test.dyndns.org -a 127.0.0.1 -s dyndns ./ddnsu -S dyndns.org -u test -p test -d test.dyndns.org -I eth0 ./ddnsu -F ddnsu.args Add "-I INTERFACE" to poll an interface every second and update the address when it changes. If a critical error is returned while updating, the client will die with the proper error code; make SURE you confirm this error and fix whatever incorrect settings may have been specified BEFORE you run the client again. Many services may disable your account for continuously updating when an error occurs. The -F option now allows you to store your ddnsu parameters in a file for ease of use as well as some simple security (passing your password on the command line is never a great idea). Simply make a normal text file with each argument to ddnsu on a new line. I know this is kind of crappy but i'm lazy and it works. Now whenever you update a particular domain you must wait at least 60 seconds before you can update it again. This prevents the service you're using from flagging you as "abusive" and potentially disabling your domain. If you get an error, usually ddnsu gives you an error code and exits with areturn value of 1. Open up the header file for the service you used and compare its return codes with the error code you recieved (for example, dyndns.h). Also, for the dyndns service at least, the error "word" is reported now; you can find out more about the error at dyndns.org's response pages in their development section. And of course you can always recompile with debug support to see the full http response from the server. You may only update one domain on one service, so if you need to update multiple domains you must run multiple instances of ddnsu. For now at least. If you happen to roll your own dynamic dns service or for some reason need to change the host or port you connect to, use the -H and -P options to set the host and port, respectively. For an example, I use these options with a dynamic-dnsmasq perl script (http://psydev.sourceforge.net/new/dynamic-dnsmasq/) to update a box's IP with the internal dnsmasq machine's dns settings like so: ./ddnsu -S dyndns.org -d test.hatethesystem.com -u test -p test -I eth0 -H 192.168.0.1 -P 9020 When updating a No-IP domain, if an IP is not specified or an interface is not polled, No-IP's ip.php script is queried for the public IP. You may want to change the port used to access this script (found in get_public_ip.h) if the IP address doesn't seem to change, most likely due to a transparent caching HTTP proxy at your ISP.