Ever Wanted to Own and Operate a Fully Featured Dynamic DNS Service?
Now You Can With MintDNS 2008 Enterprise - - Our Award Winning Dynamic DNS (DDNS) Server Suite!!!
It's never been easier to run your own DDNS service.

Looking for free Dynamic DNS (DDNS) services? Please use our free DDNS service at http://www.dynddns.us


MintDNS API Overview

MintDNS COM + Component

Introduction

The COM+ component is responsible for all DNS management functions and Base64 encoding/decoding. The component can be used in any common programming language that supports COM access. Below you find a basic break down of the COM+ components functions. Usage examples in multiple programming languages are also provided.

The Component is written in Microsoft C++ v8.0, and is an Isolated Application that makes use of Side-by-side Assemblies ( http://msdn.microsoft.com/en-us/library/ms235531(VS.80).aspx ). The COM+ also makes use of Semaphores to avoid race conditions and has been tested at load in a live production environment at 125,000,000 updates in a 24 hour period with zero failures.


Component Functions

Update an IPv4 DNS IP.

'Classic ASP example
Set sd = Server.CreateObject("MintDNS.DNSMAN")
sd.UpdateARecord(“www”, “mydomain.com”, “24.116.98.21”)

'ASP.NET example. Add a reference to mintdns.dll
Using MintDNS.DNSMAN;
DNSMAN sd = new DNSMAN ();
sd.UpdateARecord(“www”, “mydomain.com”, “24.116.98.21”)

Returns OK or FAIL

Create an IPv4 DNS Record.

'Classic ASP example
Set sd = Server.CreateObject("MintDNS.DNSMAN")
sd.CreateARecord(“www”, “mydomain.com”, “24.116.98.21”)

'ASP.NET example. Add a reference to mintdns.dll
Using MintDNS.DNSMAN;
DNSMAN sd = new DNSMAN ();
sd.CreateARecord(“www”, “mydomain.com”, “24.116.98.21”)

Returns OK or FAIL

Remove an IPv4 DNS Record.

'Classic ASP example
Set sd = Server.CreateObject("MintDNS.DNSMAN")
sd.DeleteARecord(“www”, “mydomain.com”, “24.116.98.21”)

'ASP.NET example. Add a reference to mintdns.dll
Using MintDNS.DNSMAN;
DNSMAN sd = new DNSMAN ();
sd.DeleteARecord(“www”, “mydomain.com”, “24.116.98.21”)

Returns OK or FAIL

Update an Ipv4 DNS IP.

Classic ASP example
Set sd = Server.CreateObject("MintDNS.DNSMAN")
sd.UpdateARecord(“www”, “mydomain.com”, “24.116.98.21”)

ASP.NET example. Add a reference to mintdns.dll
Using MintDNS.DNSMAN;
DNSMAN sd = new DNSMAN ();
sd.UpdateARecord(“www”, “mydomain.com”, “24.116.98.21”)

Returns OK or FAIL

Create an IPv6 DNS Record.

Classic ASP example
Set sd = Server.CreateObject("MintDNS.DNSMAN")
sd.CreateIP6(“www”, “mydomain.com”, “2001:0db8:85a3:0000:0000:8a2e:0370:7334”)

ASP.NET example. Add a reference to mintdns.dll
Using MintDNS.DNSMAN;
DNSMAN sd = new DNSMAN ();
sd.CreateIP6(“www”, “mydomain.com”, “2001:0db8:85a3:0000:0000:8a2e:0370:7334”)

Returns OK or FAIL

Remove an IPv6 DNS Record.

CClassic ASP example
Set sd = Server.CreateObject("MintDNS.DNSMAN")
sd.DeleteIP6(“www”, “mydomain.com”, “2001:0db8:85a3:0000:0000:8a2e:0370:7334”)

ASP.NET example. Add a reference to mintdns.dll
Using MintDNS.DNSMAN;
DNSMAN sd = new DNSMAN ();
sd.DeleteIP6(“www”, “mydomain.com”, “2001:0db8:85a3:0000:0000:8a2e:0370:7334”)

Returns OK or FAIL

Update an IPv6 DNS IP.

CClassic ASP example
Set sd = Server.CreateObject("MintDNS.DNSMAN")
sd.UpdateIP6(“www”, “mydomain.com”, “2001:0db8:85a3:0000:0000:8a2e:0370:7334”)

ASP.NET example. Add a reference to mintdns.dll
Using MintDNS.DNSMAN;
DNSMAN sd = new DNSMAN ();
sd.UpdateIP6(“www”, “mydomain.com”, “2001:0db8:85a3:0000:0000:8a2e:0370:7334”)

Returns OK or FAIL

Base64 encoding decoding.

CClassic ASP example
Set sd = Server.CreateObject("MintDNS.DNSMAN")
Encoded = sd. base64_encode (“This is a test”)
Decoded = sd. base64_decode (Encoded)

ASP.NET example. Add a reference to mintdns.dll
Using MintDNS.DNSMAN;
DNSMAN sd = new DNSMAN ();
Encoded = sd. base64_encode (“This is a test”)
Decoded = sd. base64_decode (Encoded)

Returns Base64 Encoded-Decoded String.

IP Address Validation.

CClassic ASP example
Set sd = Server.CreateObject("MintDNS.DNSMAN")
IsVal = sd.IsValidIPAddress(“24.116.98.21”)

ASP.NET example. Add a reference to mintdns.dll
Using MintDNS.DNSMAN;
DNSMAN sd = new DNSMAN ();
IsVal = sd.IsValidIPAddress(“24.116.98.21”)

Returns True False

Component Multi Threading Capabilities.

The COM+ component makes use of Semaphores to support an unlimited number of concurrent connections. The COM+ limits its self to 10 active threads per instance; other requests are pooled and processed in a first in first out basis.
This threading setup could be compared to a set of public restrooms each of which require a key. Let’s say we have 10 bathrooms and 10 bathroom keys. We have a line of 20,000 people waiting to use the bathroom. As people finish in the bathroom they pass their key to the next person in line.
Current setup with 10 active threads limits itself at around 1000 requests per second; above this rate the request buildup will begin to fill the servers’ memory. Note: You can add addition instances by increasing worker processes under IIS application Pool settings.

Component Auto DNS Failover.

Not used with single server setup.
The COM+ Component will first attempt to work with the local DNS server instance. Upon failure or timeout, the COM will select another from the list of DNS server IP’s. You can specify DNS server IP’s in the c:/mintdata/mintdns.ini

unsigned long IP1;
unsigned long IP2;
unsigned long IP3;
unsigned long IP4;
IP1 = inet_addr("127.0.0.1");
IP2 = inet_addr("10.0.0.103");
IP3 = inet_addr("10.0.0.104");
IP4 = inet_addr("10.0.0.105");
pSrvList = (PIP4_ARRAY) malloc(sizeof(IP4_ARRAY));

if(!pSrvList){
     return FALSE;
         }

                   pSrvList->AddrCount = 4;
                   pSrvList->AddrArray[0] = IP1; //DNS server IP address 1
                   pSrvList->AddrArray[1] = IP2; //DNS server IP address 2
                   pSrvList->AddrArray[2] = IP3; //DNS server IP address 3
                   pSrvList->AddrArray[3] = IP4; //DNS server IP address 4

free(pSrvList);

 

Standard NIC 2.0 Update Format (dyndns.org format)


http://username:password@yourservice.com/nic/update?
         hostname=yourhost.domain.com&myip=ipaddress


    myip is optional. If myip is null the server derives the clients IP address.
    Must use basic authentication, and the username and password must be base 64 encoded.

GET /nic/update?
         hostname=yourhost.domain.com,yourhost2.domain.com&myip=ipaddress
   
         Host: yourservice.com Authorization: Basic username:password


    myip is optional. If myip is null the server derives the clients IP address.
    All other standard update strings are optional.
    username and password must be base 64 encoded.

Possible Return Values:        good
                                             nochg
                                             badauth
                                             nohost
                                             badsys
                                             !donator
                                             911


User Domains Lookup (Used to display registered domains, IP address and status within your application.)

 

http://username:password@yourservice.com/Client/Domlook.asp

GET yourservice.com/Client/Domlook.asp

        Host: yourservice.com Authorization: Basic username:password

     username and password must be base 64 encoded.

Returns Domain List in XML Format:

XML Domain List

 

User Check (Determine if a user exists, and if a password is correct.) 

 

http://username:password@yourservice.com/Client/UserCheck.asp

GET yourservice.com/Client/UserCheck.asp

        Host: yourservice.com Authorization: Basic username:password

     username and password must be base 64 encoded.

Possible Returns: okuser
                             nouser

The MintDNS ISAPI (Download Source)

The ISAPI is responsible for update captures and redirects. The ISAPI also addresses a problem with IIS that blocks access to most all Linux/Unix update clients.

The ISAPI can be modified to support any existing third party client.

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 asp page on your server.

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

Modifications are provided by our team, if you are unable to make required changes.