The Haiku/BeOS Tip Server
Tips and tricks for Haiku/BeOS users

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:

  1. Download and install Python.
  2. Download the DNS module. Extract it to a temporary location. Then take the DNS folder (not its contents, the WHOLE folder) and drop it in /boot/home/config/lib/python1.5.
  3. Download DDUpdate1.6 . Edit the script and make the first line read:
    #!/boot/home/config/bin/python

    Go to line #136 and change it from:

    request = request + ' ' 

    to:

    request = request + 

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.

Keep in mind this only works with dyndns.org.

Posted in Networking


(comments are closed).