I hate paying for something as simple as updating an A record in DNS. In fact, most of these services out there make you use their DNS also. This does not work if you are using a CDN like Cloudflare.

Since I use Cloudflare Dyno DNS and no-ip don't work out for me.So I was logging in and updating my DNS records manually. It was really frustrating when I needed a file off my home NAS but my IP address had changed. even embarassing when you are supposed to be the technical one people look up to. When I found out cloudflare had an API I knew all those problems were solved.

I have a small linux box install on a small Intel NUC that controls all my DNS and DHCP for my house. I created a python script to grab my external IP from, get the zone information for my home domain, and update my A record to my IP. It needs a cron job to run, I set mine to run every 5 minutes.

There is some work that could be done with it. Currently it updates whether or not your external IP address has changed or not. Also, it requires a cron job to run. I could have it run as a service but that would be overkill as cron takes care of timing, logging, and other issues perfectly fine and shouldn't be needed for such a small task.