Dynamic DNS Update Script

Not all of our projects directly relate to web site design and development. We also do quite a bit of network management.

We ran into a situation recently where we wanted to implement Remote Web Access and VPN for a client, but the client had a dynamic IP address from their ISP instead of a static IP.  It is a common enough situation, but with the fiasco last year when a misinformed judge handed over 23 domains to Microsoft resulting in the shutdown of over 5 million dynamic hosts, we have been very leery about using many dynamic DNS services.

Our alternative solution has been to run our own, using DnsMadeEasy‘s AnyCast DNS and dynamic host records under our own domain names.

However, most software clients for Windows for updating dynamic host records are either tied to a specific vendor that we do not use, are adware supported, require a license fee, or worst of all require JAVA to run.

After looking at the state of the market, we decided to write our own and release it to the world under the MIT license, which allows anybody to use it for commercial or non-commercial use and create derivative works, while maintaining our copyright and limiting our liability.

Our Requirements:

  1. Use something already installed on a windows server by default
  2. Store authentication information in a config file and not hardcode anything
  3. Limit network traffic and only update when necessary
  4. Work with DnsMadeEasy, our anycast DNS provider of choice
  5. Be lightweight enough to run as a windows service or scheduled task
  6. Passwords need to be obfuscated and not stored in clear text

The result is a script written in VBScript that runs using Microsoft Windows Script Host (either wscript or cscript).  You can either cut and past the code below (click the box to expand it) or download the zip file below.

or download the program: ddns-1-0-3.zip (6935 Bytes)

** August 24, 2016 Update **

Changes to data returned by the DNS Made Easy API URL have required a maintenance release.

We have observed the API intermittently returning whitespace in the form of tabs and spaces after the IP address. The updated script strips non IPv4 characters before processing.

If you have questions or comments, please contact us and we will get back to you.

Dynamic DNS Update Script Contact

If you would like to receive an email message when a new version of this script is released, please fill out the form below. The information you provide will not be used for any purpose other than contacting you about this script.

This field is for validation purposes and should be left unchanged.

This entry was posted in Projects. Bookmark the permalink.