Dynamic DNS with dyndns.org

Contributed by: Richard M. Shaw

This tip is valid for:
Both BeOS and Haiku

If you’re not familiar with dynamic DNS addressing, a dynamic DNS service lets someone who doesn’t have a static IP address (DSL/Cable/Dialup) to have a static DNS entry so they can run web servers, etc. The most common way of doing this is to run a client that will look up your IP address at specified intervals and see if it matches the database of the DNS server you’re using. If not, it simply updates the database.

The problem is that there is no native BeOS client for dynamic DNS updates. I’ve found tons of C clients but they all relied on arpa/inet.h which I don’t have. Some were even written in Perl, but Perl for BeOS doesn’t support sockets. So after I had all but given up hope I ran across a client that used Python. Only one problem — it didn’t work and the error message was as vague as can be, “Error updating…” So I delved into www.python.org to see what I could do. I later find out that the error is that the script is not reporting what kind of agent it is (basically, “Who are you?”). I found the answer by looking at the source of one of the C clients. As it turns out the problem was a misplaced ” “. Here’s how to get this working on your own:

Make sure the permissions for the file is executable. Take the modified script and drop it in /boot/home/config/bin.

Read the instructions. There’s a file you can create in /boot/home called .ddupdaterc in which you can put your info in so you can just call ddupdate instead of typing out the whole command line every time.