Ever since DynDNS.org has dropped all free services, I have been looking for good alternatives. Here in Finland, the IP addresses of the cable and DSL ISPs don't change excessively often, so for a while, it was ok for me to change the A record of my home server by hand in the cPanel DNS editor of my hoster.

However, with autumn and winter came the brownouts and blackouts and, living in a rather small town with a local electricity company which is not very dedicated to continuity and good service, quite many of those. That naturally lead to many reboots of my router and thus many new IP-addresses. At this point, changing the A record by hand became rather tedious.

Because I run a couple of services and I didn't want to change the hostname for my home server again (yes, I do know what CNAME records are for, but still... :) ) plus I didn't want to go to yet another dynamic DNS provider, I contacted the support of my hoster. I do have a fair amount of experience administrating bind and I thought, maybe we could set up a hidden primary construct or at least dynamic DNS via the bind DDNS protocol.

But, as much as the Neobitti support usually makes the impossible possible and really stands out with exceptionally good costumer service and flexibility, here they had to say "no" - for security reasons. They did, however, point me to the cPanel API documentation and suggested, I could knit a script using this API to do automatic updates.

Never having been a great fan of cPanel I was pretty sceptical but had a look at the API docs and found a very well documented API with lots of examples in PERL and PHP. I took me a little bit under 2 hours to knit a working PERL script which updates the IP of a selected A record in a selected domain. The respective script is available in the IT/scripts section of my website.