Bunny has BellSouth [1] as a DSL (Digital Subscriber Line) provider. They give her a dynamic IP (Internet Protocol) address. A dynamic IP address makes it difficult for her to get back to her computer when she's at her office.
I know Wlofie [2] uses DynDNS (Domain Name Service) [3] and he's used it for several years with no problems. So I figure I'd check it out and see if it could be used.
Looking around, it seems their clients [4] assume the computer in question has the public IP address. Which in Bunny's case, isn't the case. Her DSL router has the public IP address.
Not to worry though—there's a Linux system at her house as well. But the Linux client [5] isn't officially supported. Okay, but it appears to work anyway. But it's a Perl based client [6] and call me a computer language bigot (“you computer language bigot!” thanks) but the idea of running a daemon written in Perl just doesn't sit well with me.
Besides, it too requires the computer in question to have the public IP address. Oh sure, you could configure the Linux client to use their CheckIP [7] server, but when I tested it, I get the private IP address, not the public IP address (but see below for an update).
[DELETED-Great CheckIP server there, guys.-DELETED]
So I figure I'll roll my own. It doesn't look that hard actually. Have a simple client program connect to a DNS server I control. The server side can grab the public IP address from the actual connection, and if the appropriate bits are sent across the wire, the server will then update the IP address in the appropriate zone file and that's that.
And I'm definitely overengineering the program.
But then again, in college (Florida Atlantic University) [8] I was told by a professor to stop the overkill on my programs.
Seems I made a mistake when I tested the CheckIP page. It works fine unless you use a web proxy, which I do.
Oops.
[4] http://www.dyndns.com/support/clients/
[5] http://www.dyndns.com/support/clients/unix.html
[6] http://www.dyndns.com/support/kb/archives/using_ddclient_with_dyndns_services.html