THE MINTDNS API

HOME | CITRONDNS API

Mintdns programming interface

Mintdns API

Below you will find a set of routines, protocols, and tools for building software applications around the Mintdns platform. This allows for the creation of client applications that access the features of Mintdns.

Mintdns 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.

Helpful tools

There are HTTP tools such as libcURL, cURL or INADYN which can be used to simplify the development process. There are also tools which can help create perfectly formatted HTTP headers for use in your code, like Wfetch 1.4.

Mintdns update protocol

The HTTP Request(s)

Please see RFC 2616 for information about the HTTP Protocol. All human editable fields should be trimmed of white spaces. All fields must be 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".

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.

Definitions

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 Base64 encoded username:password.

Contact Information

    Adamsland Microsystems
    P.O. BOX 296
    Huntsville AR. USA, 72740
    Phone: +01-479-789-0292
    Email: sam@dyndnsservices.com