This little script was born out of a desire to get rid of DynDNS and similar services. There are several scripts around that do the job, but most of them are pretty complicated because they try to do the Amazon AWS calls manually.
This script requires a fully configured installation AWS cli which is used to do the update.
What it does:
- Use curl to get the local IP address from a router status page
- Check whether the internally reported IP matches the one known to a public DNS server
- If it doesn’t match, create an update record to update a hosted zone file on AWS Route 53
This can be run from a cron job every couple of minutes to ensure the ip is always current.
Currently this is tuned to get the IP from a German Telekom Router, but the curl/grep expression should be easily adapted to use a different source.
I hope this is useful to other trying to achieve the same thing. You can find the code on GitHub