Here is a brief introduction to using the client on a unice. It is part of an email I sent answering a user's questions. -------------8X------------------------------------------------------------- Grab the client software for ddns.nu, that is a good start, if nothing else, you can run it manually until you work out were to hook it into your config. On the average linux box this should grab and compile it: nexus:~$ cd /tmp nexus:/tmp$ lynx -dump http://www.ddns.nu/files/ddns3-client.tar.gz > ddns3-client.tar.gz nexus:/tmp$ tar -xzf ddns3-client.tar.gz nexus:/tmp$ cd ddns3-client nexus:/tmp/ddns3-client$ make gcc -Wall -O6 -c sockio.c -o sockio.o gcc -Wall -O6 -c crypto.c -o crypto.o gcc -Wall -O6 -c auth.c -o auth.o gcc -Wall -O6 -c md5.c -o md5.o gcc -Wall -O6 -c ctx.c -o ctx.o ar -csr libddns3.a *.o gcc -Wall -O6 -lcrypt ddns3.c libddns3.a -o ddns3 strip ddns3 My prompt might be a little different, and the result a different size, but you should now have a binary in current directory of the client: nexus:/tmp/ddns3-client$ ls -la ddns3 -rwxr-xr-x 1 alany users 16828 Aug 15 03:44 ddns3* You can run it with no arguments to get usage: nexus:/tmp/ddns3-client$ ./ddns3 DDNS Client v3 (c) :: http://www.ddns.nu/ (c) 2001 Alan Yates Usage: ddns3 [optional args] Required args --user username --pass password Optional args --host server-hostname specify server host --port server-tcp-port specify server port --debug activate debug mode --auth auth-name specify authentication type Authentication types: plaintext, crypt, md5, ddns (default), strong Actions: list lists IP-Handles set sets an IP-Handle's value guess sets an IP-Handle's value guessing the IP from the end of the connection, ends are named 'remote' or 'local' That is a lot of long winded garbage, but basically you use it like this (password changed): Getting a list of your handles: nexus:/tmp/ddns3-client$ ./ddns3 --user alany --pass mypass list nexus-bpc-iface 144.132.130.202 alanyates-herf-lpb 203.32.117.232 redirect-ddns-nu 203.32.117.205 test 203.32.117.205 Updating a handle and viewing the change: nexus:/tmp/ddns3-client$ ./ddns3 --user alany --pass mypass set test 0.0.0.0 server_message: +OK ip-handle updated, 2 ddns-record(s) updated nexus:/tmp/ddns3-client$ ./ddns3 --user alany --pass mypass list nexus-bpc-iface 144.132.130.202 alanyates-herf-lpb 203.32.117.232 redirect-ddns-nu 203.32.117.205 test 0.0.0.0 So to automate this, all you need is to install the ddns3 binary somewhere: nexus:/tmp/ddns3-client$ su - Password: nexus:~# cp /tmp/ddns3-client/ddns3 /usr/local/bin nexus:~# chmod a+rx /usr/local/bin/ddns3 Then the hard part, hacking your config to call it automatically. I'll use my office's ADSL config as an example: jolt:~# cd /etc/ppp/ jolt:/etc/ppp# cat ip-up #!/bin/sh # # Update dynamic DNS records # if [ $1 = "ppp0" ] ; then # ddns.nu updates /usr/local/bin/ddns3 --user user --pass pass set adsl-iface $4 # more unrelated stuff... fi Now this is cheating a little. It may not always be ppp0 for the ADSL interface, but in my case it always is. You may wish to despense with the if and fi lines completely if you don't have a PSTN modem or other PPP device that might also call this script. That is all there is too it, you may need to create the /etc/ppp/ip-up file and make it executable, but that is all I use and it works just fine. Have a read of the pppd manpage, there is information there about the ip-up (et al) scripts that are called by pppd, including the order of the arguments passed to it. -------------8X-------------------------------------------------------------