This script will update the A DNS record for a domain/subdomain at NearlyFreeSpeech.NET with the public IP address for the machine the script runs on. Run this script on a server in which the public IP address is dynamic and changes so your domain is always up to date.
There are two steps to this script. First, it retrieves the configured IP address for the subdomain, the current public IP address of the server, and then compares the two. If the public IP address is different, it updates the A record of the subdomain with the new IP address.
Tcl and Tcllib are the only two requirements. They come pre-installed on most *nix operating systems.
Configurations are set straight within the dns.tcl
file in the CONFIG
section.
username USERNAME
api_key API_KEY
domain DOMAIN
subdomain SUBDOMAIN
username --Your NFSN username
api_key --API key for using NFSN's APIs. This can be obtained via the Member Interface > "Profile" tab > "Actions" > "Manage API Key".
domain ---Domain that the subdomain belongs to
subdomain ---Subdomain to update with the script. Leave blank for the bare domain name.
It is as easy as running: tclsh dns.tcl
or make it executable with chmod u+x dns.tcl
and then run ./dns.tcl
It can even be setup to run as a cron job to completely automate this process. Something such as:
@hourly /usr/local/bin/tclsh /scripts/nfs-dynamic-dns/dns.tcl
The script communicates with NearlyFreeSpeech.NET via its RESTful API. Specifics about the API can be found here.