Need to run a fully Featured Dynamic DNS Service?
Now You Can With - - Our Award Winning Dynamic DNS (DDNS) Server Suite!!!
Perfect for IP cameras or DVR's. It's never been easier to run your own DDNS service.

Looking for free Dynamic DNS (DDNS) services? Please use our free DDNS service(s) at http://access.camera


Update Client Design.

MintDNS uses a dyndns.org compatible HTTP update protocol. It is very important that your update client observe a few rules to avoid unnecessary connections to your DDNS server. A poorly designed client application can and will cause your DDNS server to be flooded with unneeded update requests. For example, imagine that a company has fielded 30,000 devices each using an embedded DDNS client that sends an update every 1 minute, needed or not. This will result in 43,200,000 daily updates. Each would require a Database lookup. A little extra time spent on client development can save hundreds if not thousands of dollars down the road.

Your DDNS client should not send unnecessary IP updates. When a successful update is sent to the DDNS server, your DDNS client should store its detected WAN IP address. Your client should then poll the IP detection method defined below every few minutes and compare the detected IP address to the stored IP address. If an IP change is detected an update should be sent to the DDNS server. If successful your client should store the new IP address and the process should be repeated indefinitely.

Your device should send an IP update upon reset/reboot even if an update is not needed.

There are HTTP tools such as cURL or INADYN which can be used to simplify the development process. Any dyndns.org update client can be used. Ddclient is a good choice if your devices are capable of running Perl.




The HTTP Request

Please see RFC 2616 for information about the HTTP Protocol. All human editable fields should be trimmed of white spaces, and URL encoded before being sent to the DDNS server.

GET Request (Update IP)

GET /nic/update/default.aspx?hostname=yourhostname&myip=ipaddress
         Host: www.yourserverurl.com
         Authorization: Basic base64-encoded "user:password"
         User-Agent: Company - Device - Version Number
         
 Returns: good, nochg, badauth, nohost, badsys, 911

GET Request (User Check)

GET /client/usercheck.aspx
         Host: www.yourserverurl.com
         Authorization: Basic base64-encoded "user:password"
         User-Agent: Company - Device - Version Number
         
 Returns: okuser, nouser

GET Request (Detect WAN IP)

GET /ipcheck.aspx
         Host: www.yourserverurl.com
         
 Returns: WAN IP Address

GET Request (Domain List)

GET /client/domlook.aspx
         Host: www.yourserverurl.com
         Authorization: Basic base64-encoded "user:password"
         User-Agent: Company - Device - Version Number
         
 Returns: User Domain list "XML Format".
         
         

Fields Description
hostname Full domain name that you wish to update. E.G. user1.yourserverurl.com. This field should be trimmed of white spaces and URL encoded.
This is a required field.
myip IP address to set for the update. If this field is not specified, the DDNS server will determine the current WAN IP. If the IP address passed to the system is not properly formed, the update will be rejected.
user:password Authorization: Basic should be represented by Base 64 encoded username:password.




The MintDNS ISAPI

The MintDNS ISAPI can be used to capture input from existing DDNS clients and redirect those requests to an aspx page of your choosing. The ISAPI can be modified to support any existing third party client, even those using custom update protocols.

If you are going to use an existing non standard firmware client, you can use the ISAPI to redirect requests for .php or .pl pages(Or any page type from other servers.) to an appropriate aspx page on your DDNS server.

The ISAPI is written in Visual C++ v8.0 and compiles with Visual Studio 2005 or later.

The source code of this tool is provided upon request. Modifications are provided by our team free of charge.