Developers - Dynamic DNS API
Overview
In order to make the most of DNS Park and its services we must have a complete list of various dynamic DNS clients for our customers to be able to take advantage of all we have to offer. Explained in this section are the guidelines that should be used when creating a dynamic DNS client that functions with DNS Park. Should there ever be any changes or additions to Park procedures, they will be found here well. These guidelines are comprised of various requirements that are found at most other dynamic DNS services so should be fairly standard.
There are three major sections that should be reviewed by developers.
Currently, there are no formalized groups or mailing lists to help developers though that may change depending on the interest and the number of questions received. If there are any questions regarding development please contact us with your questions and we will answer you promptly.
Clients submitted to us will be placed in our client listing with links to your website for complete information on the client.
Guidelines & Hints
Testing Clients
While testing new clients, a domain has been specifically created for this purpose. The domain *.test.dnspark.com is available for testing. The hostnames have been predefined has host00-host99. So allowable hostnames for test purposes are host000.test.dnpark.com through host99.test.dnspark.com. That should be more than enough hosts for multiple developers to work concurrently without interfering with each other.
Periodically the hostnames will be reset to and IP address of 10.1.1.1 so testing can restart from a clean slate.
The username is 'test' with a password of 'test1234'. This username and password will not function on the website management interface.
Things to Avoid
- Sending requests to anything other than /api/dynamic/update.php. Requests should be sent to /api/dynamic/update.php and only that URL.
- Attempting further updates after receiving any error result codes unless the configuration has been updated.
- Hard coding the IP addresses of the DNS Park servers.
- Accessing web-based IP detection scripts in less than 10 minute intervals.
- Not properly checking variable input from external sources (such as web-based IP scripts).
Result Codes
DNS Park has defined multiple result codes that should provide enough information to any client software to prevent problems. Those result codes should be adhered to carefully.
Abuse Prevention
Updates that do not change any host information will be scrutinized carefully. Repetitive updates of this nature will cause the client to be blocked. It is the the developers responsibility to understand the return codes provided and ensure the client does not send updates any more than required.
User Agents
Each client must have a unique User-Agent string. This allows the DNS Park support to help diagnose problems with various clients that are malfunctioning. Clients that do not provide a User-Agent string are subject to being blocked by the system.
HTTP GET
Clients are required to send HTTP GET statements to the server when performing updates. Using GET statements makes debugging easier for developers and it is currently the only method supported. Any POST requests will be ignored unless otherwise noted here.
IP Detection
Detection of IP addresses locally is by far the prefered method of determining the local IP address. However, due to the growing popularity of NAT (network address translation) devices (such as wireless access points, DSL routers, cable modems, etc.) it becomes more difficult. If local detection is not possible, web-based IP detection is the next logical choice that is easy to implement.
DNS Park provides web-based IP detection for this reason. Checking for the IP address can be done at http://ipdetect.dnspark.net/ or http://ipdetect.dnspark.net:8888/.
Clients using this method should not check more often than once every 10 minutes, or upon startup of the client. This service will be monitored for abuse, and should the abuse not cease, the dynamic capabilities of the domain may be suspended.
Questions & Comments
If there are any questions regarding client development that are not addressed in the developer's corner, please contact us.
If there are additional features that DNS Park should make available would would like to hear your opinion. Again, please contact us and we will consider each of the requests we receive.
