DynDNS updater using Loopia’s API

First of all, I’ve made some huge changes to my API script, make sure to check it out if you haven’t already! This script is still my first and primary Python project so it’s close to my heart. I keep adding things to it every now and then and it’s working great so far.

Today I added the possibility to use it to update your IP address automatically if it changes, a lá DynDNS, except it doesn’t use Loopia’s DynDNS server at all. It’s completely API based. This means that you no longer have to store your Customer Zone credentials in plaintext on the server. By limiting the API user’s permissions you can limit it to only fetch current records and update said records.

But I’ve realized my regular API script could be very confusing to those unfamiliar with a terminal interface, so I’ve decided to do a standalone DynDNS updater, found here!

Pros:

No longer have to use CZ credentials

Limit access to DNS record changes

Works just as good, if not better, than the regular DynDNS service

Allows for more advanced functions and customization

Python!

Easier to migrate and use on different operating systems

Cons:

There’s no way to limit the API to single domain names. Other people with read access to the API credentials will be able to read and change all zone info… providing they know the domain name beforehand. Still more secure than previously, though!

Somewhat harder to change several domains/subdomains. This is, of course, fixable, but I’m too lazy to fix that as of now.

All settings are currently located in the script itself. I consider this a con because it’s harder to perform several changes at once. Although, once again, this can be fixed if I find the time.

Requires Python 3.x. I could port it, but I’ve decided on sticking with Python 3.x for now

There’s a lot to polish. I’m still very new to Python and I made this script in about an hour.

Make sure to also check out my Scripts and Stuff and don’t be afraid to comment if you have any questions!