Usage

On this page I will try to explain the usage of my dynamic DNS and URL
service.

The request

Every transaction is done by an ordinary HTTP request. Parameters can be
passed via GET or POST data. Here is a simple specification of the HTTP
request (GET-method):

http://[*subdomain*.]*/0l.de/command*[.*format*][?*parameters*]

For simplicity all parameters can be omitted. They will be replaced by
default values as described in the table below. Therefore the simplest
request looks like:

http://d.0l.de/add

Authentification

Every host-zone combination ist secured by a password. The first time
you add a record for a new combination, you have to set a password for
further modifications (add, delete other records). After deleting the
last record of a combination, the password of this combination will also
be resetted and the combination is released for free use..

Expire date & lifetime

The expire date of a record or an URL redirection is defined by a
record/url dependend lifetime.

If there was no

  • update
  • query (on dns records)
  • visit (on url redirections)

on the record/url for lifetime seconds it will be deleted with the
next daily cleanup process. The hosts of these records/urls will be
returned for further use. Every record/url has its own lifetime which
can be specified when you add your record/url in the expert interface.

Please note that the maximum lifetime is limited to 6 months
and is set by default to one month.

Commands

There are three commands: add, delete and update. Their function is
mostly self-explanatory.

  • The add command has no required parameters. All arguments own
    default values.
  • The delete command has three required paramters:
    [&host=*string*], [&zone=*string*] and [&pw=*pw*].
    Using only these two parameters will delete all records and the host
    itself. You can improve the selection of records/urls by adding
    extra filters: [&class=(IN|CH|AS)],
    [&type=(A|AAAA|NS|TXT|MX|SRV|CNAME|LOC|HINFO|URL)]
    and [&rdata=string].
  • The update command can only update A-records in the IN-class. It
    is useful for DynDns clients. Take a look at the
    examples. For more update abilities please delete your
    record/url and add a new one.

Specification

This is the complete specification of an HTTP-GET request:

http://[*subdomain*.](d.0l.de\|d.eta.li)/(add\|delete\|update)[.(html\|gif\|xml\|php\|txt\|csv)][?[&host=*string*][&zone=(0l.de\|d.eta.li)][&rdata=*string*][&ttl=*integer*][&lifetime=*integer*][&pw=*string*][&type=(A\|AAAA\|NS\|TXT\|MX\|SRV\|CNAME\|LOC\|HINFO\|URL)][&class=(IN\|CH\|AS)]]
zone 0l.de
command add, delete, update, ip
format html, php, gif (1px image), xml, txt, csv

The command ip returns your current net-ip. Example:

1
2
3
4
5
6
7
8
steffen@steffen-laptop:~/git/sddns$ curl "http://d.0l.de/ip.xml"
<?xml version="1.0" encoding="UTF-8"?>
<sddns>
  <message type="notice">
    <description>your current internet ip address</description>
    <ip version="4">88.69.155.161</ip>
  </message>
</sddns>

parameters

parameter description default value max value
&host=*string* subdomain for the record taken from optional subdomain or unique generated alphanumeric random string 63 bytes ^= 63 chars inclusive IDN
&zone=*(0l.de\|d.eta.li)* zonename for record taken from domain
&rdata=*ip* record data (validation depend in type parameter) remote ip (only when type=A) unlimited
&ttl=*integer* time to live in seconds (in dns cache) 120 (2 min) 3600 (1 hour)
&lifetime=*integer* time to live in seconds (in zonefile) 2592000 (1 month) 15552000 (6 months)

|[&type=(A|AAAA|NS|TXT|MX|SRV|CNAME|LOC|HINFO|URL)]

  • A
  • AAAA
  • NS
  • TXT
  • MX
  • SRV
  • CNAME
  • LOC
  • HINFO
  • URL

|record type

  • address record
  • IPv6 address record
  • name server record
  • text record
  • mail exchange record
  • service locator
  • canonical name record
  • location record
  • hardware information
  • pseudo type for url redirection
A

|[&class=(IN|CH|AS)]

  • IN
  • CH
  • AS

|record class

  • internet
  • chaos
  • hesiod
IN
[&pw=string] password used for authentification alphanumeric generated random string unlimited

Examples

http://test.0l.de/add.html?pw=secret&rdata=4.2.2.2 the same
http://d.0l.de/add?host=test&zone=0l.de&pw=secret&rdata=4.2.2.2&ttl=120&class=IN the same
http://google.d.eta.li/add.xml?type=CNAME&rdata=google.de&pw=secret create alias for google.de
http://d.0l.de/add.gif registrate random subdomain with an alias to your current ip. Useful if you want to track somebody. Just embed this picture in an link, or email
http://d.0l.de/delete?host=google&pw?secret delete all records from host google.0l.de and itself
http://d.0l.de/update.php?host=test&zone=0l.de&pw=secret&ip=1.2.3.4 updates record
http://redirect.d.eta.li/add?type=URL&rdata=http://www.google.de&pw=secret add url redirection
http://d.eta.li/delete?type=URL&host=redirect&pw=secret delete url redirection