Connection
The DAC is available to TCP connections to port 2043 at dac.nic.uk from registered IP addresses only. You are limited to a maximum of two simultaneous connections from the registered IP addresses. This can mean one from two different IP addresses or two from the same IP address.
Each time a new connection is made the DAC pauses three seconds before starting the services. The DAC is designed to support long standing connections, not large numbers of repeated connections and disconnections.
If a new connection is made, exceeding the limit of two simultaneous connections, then this causes the dropping of the oldest connection from that DAC subscriber.
Any connection attempts that are made from unauthorised IP addresses to the DAC will receive the following message :
IP address a.b.c.d is not registered. Closing…
If the DAC thread servicing this connection cannot connect to the database then it returns the following message :
Error accessing database. Closing…
Each request to the DAC must be just the full domain name (without a trailing dot) per line, with each line terminated by a carriage return and line feed pair. Example DAC requests are:
internet.co.uk
automaton-example.org.uk
For each request made the DAC responds with a line of text terminated by a carriage return and line feed pair. Example DAC responses are:
internet.co.uk,Y,N,N,1996-07-30,2006-07-30,1,NOMINET
automaton-example.org.uk,N
There is no need to wait for a response before sending another request, the DAC will add any further requests to a queue
and respond in turn.
Limits
The rate limits on DAC usage are given in the acceptable use policy. Queries in excess of these limits lead to a block being imposed for the time necessary to take the client back within the acceptable rate limits.
Blocks
When a block is imposed the DAC responds to the first query that is blocked with:
<domain-name>,B,<delay>where:
<domain-name> is the domain name that caused the client to exceed quota.
B indicates that the connection is now blocked
<delay> is the delay in seconds until the block is cleared.
e.g. nominet.org.uk,B,541
The connection then sleeps for that number of seconds. All queries and responses sent during that time are buffered by TCP but no responses are generated. When the connection wakes up it processes any queries in the buffer as though they had just been sent and then continues.
Response
The response starts with the domain name the request relates to followed by a comma and a space and then the list of
response fields. Each response, except the last, is followed by a comma and a space. If the registered response is
N, E or R then the remaining fields are omitted.
The fields that make up the reply are as follows:
| Field | Value | Notes | ||||||||||||||
| Domain name | Text | This is the domain name that was supplied in order for the response to be matched to the request. | ||||||||||||||
| Registered | Y, N, E, R, I,B |
|
||||||||||||||
| Detagged |
Y or N |
If the domain name is registered (the "Registered" field is "Y"), then this is "Y" if the domain is detagged and "N" if not. number(if query was blocked) If the query was blocked (the "Registered" field is "B"), this is the number of seconds that the DAC will wait before responding to the next query. |
||||||||||||||
| Suspended | Y or N | If the domain is suspended then this is Y, if it is not then it is N. | ||||||||||||||
| Registered on | Date | This is the date the domain was registered in ISO format as YYYY-MM-DD | ||||||||||||||
| Renewal date | Date | This is the date the domain is due for renewal in ISO format as YYYY-MM-DD | ||||||||||||||
| Registration status | 0 … 5 | This is a number from 0 to 5 that has the following meaning
|
||||||||||||||
| TAG | Text | The TAG that this domain is registered with. In addition it may be DETAGGED or NOMINET, which are the internal tags used to represent detagged domains and those registered directly with us. |
Commands
The DAC has a limited command set. Please note that the # symbol is part of the command - the DAC recognises this as the start of a command not an ordinary request.
#exit
This closes the connection cleanly.
#usage
This returns information on the number of queries that you have made. The current form is
#usage,C,60,count_1,86400,count_2
Where count_1 is the number of queries you have made in the current 60 second rolling window and count_2 is the number of queries you have made in the current 24 hour (86,400 second) rolling window.
If the rolling windows ever change as a result of the acceptable use policy changing, then this command will return different figures.