Connection
The real time DAC is available to TCP connections to port 3043 at dac.nic.uk from registered IP addresses only. You are limited to a maximum of four simultaneous connections from the registered IP addresses. This can mean one from four different IP addresses or four from the same IP address.
Each time a new connection is made the real time DAC pauses three seconds before starting the services. The real time 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 four simultaneous connections, then this causes the dropping of the oldest connection from that real time DAC subscriber.
Any connection attempts that are made from unauthorised IP addresses to the real time DAC will receive the following message :
IP address a.b.c.d is not registered. Closing…
If the real time DAC thread servicing this connection cannot connect to the database then it returns the following message :
Error accessing database. Closing…
Each request to the real time 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 real time DAC requests are:
internet.co.uk
automaton-example.org.uk
For each request made the real time DAC responds with a line of text terminated by a carriage return and line feed pair. Example real time DAC responses are:
internet.co.uk,Y,N,1996-07-30,2006-07-30,NOMINET
automaton-example.org.uk,N
There is no need to wait for a response before sending another request, the real time DAC will add any further requests to a queue
and respond in turn.
Limits
The rate limits on real time 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, B |
|
| Detagged | Y or N (if domain is registered) | 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. |
| 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 |
| 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 real time DAC has a limited command set. Please note that the # symbol is part of the command - the real time 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.
#limits
This returns information on the number of queries that you are allowed to make. The current form is
#limits,C,60,count_1,86400,count_2Where count_1 is the number of queries you are allowed to make in a given 60 second rolling window and count_2 is the number of queries you are allowed to make in a given 24 hour (86,400 second) rolling window.