====== Dynamic DNS Service ======
[[http://www.minidns.net|miniDNS.net]] is a public DDNS service that I created back in 2001.
===== Features =====
The service provides subdomains registration under **minidns.net** and **dynsite.net**.
The following DNS record types are supported:
* Host Record IPv4
* Host Record IPv6
* MX Record
* Alias Record
For Host records, [[http://en.wikipedia.org/wiki/Time_to_live#DNS_records|TTL]] is preset to **10 seconds** for newly created records since Jan 2010. This enables fast update to IP Address change.
===== Update Protocol =====
==== 1. HTTP ====
Open the following URL to update ip address for bar.minidns.net to 1.2.3.4, assume login ID "foo" and password "topsecret"
''%%http://www.minidns.net/areg.php?opcode=ADD&host=bar.minidns.net&username=foo&password=topsecret&ip=1.2.3.4%%''
Upon successful operation, you will get the following output:
''%%okay. www.foobar.com mapped to 1.2.3.4.%%''
----
==== 2. miniupdate with challenge/response security ====
=== Network Configuration ===
Server: **update.minidns.net**\\
Server Protocol/Port: **TCP/9120**
=== Command Syntax ===
All commands sent to the server should be terminated with a new-line character.
The maximum number of commands in a session is 10.
AGENT
This is the first command you //must// use. It sends your program information to the server. Otherwise, you cannot issue any other commands except EXIT.
LOGIN digest-md5-text
Login to the server using either MD5 digest authentication method.
The server will send you a 32 characters challange. The correct response is the MD5 hash of 64 characters. The first 32 characters is the hex string of the MD5 hash of the plain text password, the second 32 characters is the received challange.
RESPONSE
Use this command to return the computed response to the server challange.
A_UPDATE online|offline [optional IP address]
This command will update the IP address for supplied host name.
If the optional IP address is not given, the server will use the IP address of the client.
The optional IP address is ignored if offline is used.
VERSION
Get version number of the server. You can use this to decide whether to ask the user to upgrade the client software, if the server version is higer than expected.
EXIT
Disconnect from the server.
=== Server Response ===
Server Response is one line of text, divided into two sections: One word status code, a space separation, and verbose description of the status.
Available status codes:
* **OK** - operation is completed without error.
* **ERR** - operation failed.
The client program should disconnect and **stop retry** when status code "ERR" is received. Stop retry is very important to prevent net abuse.
=== Sample Session ===
<== miniDNS.net Update Server 0.8.1 (Build 21)
==> AGENT miniupdate-Win32/1.2
<== OK Agent accepted
==> LOGIN xxxx digest-md5-text
<== CHALLENGE 0e2950658c15c2c5e25aafe5c90cxxxx
==> RESPONSE 9f99f101d7761be8277967c14327xxxx
<== OK Authenticated
==> A_UPDATE online example.minidns.net 1.2.3.4
<== OK EXAMPLE.MINIDNS.NET mapped to 1.2.3.4
==> EXIT
<== OK Bye!
==== 3. dyndns.org compatible ====