The update is done using a very simple HTTPS request to the
www.dy.fi server URI /nic/update. Currently we only support pointing a hostname
to the IP address of the HTTP client.
Authentication is done
using HTTP Basic authentication - if it fails, the standard HTTP 401
'Unauthorized' response is given. The only parameter supported is
'hostname' which can include a list of comma-separated hostnames that
should be pointed to the IP address of the client.
The result of the update request is returned in the text/plain content of the HTTP
reply. One line of content is returned per updated hostname. The result line can be any
of the following:
- badauth
Authentication failed (HTTP result code will be 401, too)
- nohost
No 'hostname' CGI parameter given in the request, or the hostname is not
allocated for the user
- notfqdn
The given hostname is not a valid .dy.fi FQDN
- badip ip-address
The client IP address is not a valid IP address, or is not registered
to a Finnish organisation.
- nochg
The request was valid and processed, but did not cause a change in the DNS
information since the information had not changed since last update (the client
IP address had not changed). If a large number of 'nochg' replies are sent
to the same user in a short period of time, the usage is considered abusive
and the account will be disabled.
- good ip-address
The request was valid and processed successfully, and caused the hostname
to be pointed to the IP address returned. If this was was an 'offline' request,
the response does not contain the IP address.
- dnserr
The request failed due to a technical problem at the dy.fi service.
- abuse
The request was denied because of abuse (too many requests in a short time).
Please only update the mapping when the IP address has changed, or
the mapping is about to expire. The mappings expire in 7 days, so
please update some time between 5*24 and 6*24 hours after the previous update
(preferrably at a slightly random interval).
We don't currently mind if you update once per day, but if everyone
starts to run the updating commands at exactly the same time
(on 12:00:00, 13:00:00, 14:00:00...) we will probably get hit too hard.
If you run a simple update command from cron, please select a random minute to
update at.
Currently only two URL parameters are supported:
hostname=host.dy.fi (required), containing the fully qualified hostnames
being updated. Multiple comma-separated hosts may be updated by a single request.
offline=yes (optional), to release a host (remove from DNS).
Sample request and reply:
Here is a sample HTTP/1.0 request with username 'email@add.ress' and password 'salakala'
in the Base64 encoded Authorization header.
GET /nic/update?hostname=hostname.dy.fi HTTP/1.0
Authorization: Basic ZW1haWxAYWRkLnJlc3M6c2FsYWthbGE=
User-Agent: my-client/0.0.1 (my@email.add.ress)
Host: www.dy.fi
Cache-Control: no-cache
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2004 07:49:39 GMT
Server: Apache/2.0.46 (Unix)
Last-Modified: Thu, 22 Jan 2004 07:49:39 GMT
Cache-Control: no-cache
Content-Type: text/plain
X-Pad: avoid browser bug
nochg
Update requests using common command line tools:
curl -D - --user useraccount:password https://www.dy.fi/nic/update?hostname=hostname.dy.fi
wget -q -O - --http-user=username@dom.ai.n --http-passwd=p4ssw0rd https://www.dy.fi/nic/update?hostname=asdfg.dy.fi
Please note that running curl or wget from cron is not a great
replacement for an actual update client, which will notice when
your IP changes and makes the update request when necessary.
|