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