1. djbdns/tinydns/record
Contents
djbdns (D. J. Bernstein作) tinydns-data プログラム の データ形式
DNS 情報は行の並びからなる。行末の空白とタブは無視される。
- 各行は特殊文字で始めて、コロンで区切られたフィールドが続く。
フィールドは省略できる場合もあるが、コロンは行末のものを除き省略できない。
項目には末尾に ttl:timestamp:location を付けられる。
A レコードは ".", "&", "=", "+", "@" などで生成される。
- 同じ A レコードが重複して生成されることがないように注意すること。
行頭文字 |
項目 |
生成されるレコード |
説明 |
. |
fqdn:ip:x: |
SOA, NS, A レコード |
fqdnドメインのネームサーバ、ゾーン宣言 |
& |
fqdn:ip:x: |
NS, A レコード |
(下位)ドメインfqdnのためのネームサーバ |
@ |
fqdn:ip:x:dist: |
MX と A レコード |
fqdnのメイル中継受信ホスト |
= |
fqdn:ip: |
A, PTR レコード |
ホストfqdnはIPアドレスipである |
+ |
fqdn:ip: |
A レコード(だけ) |
サービス名fqdnはIPアドレスipを持つ |
' |
fqdn:s: |
TXTレコード |
|
^ |
fqdn:p: |
PTRレコード |
|
: |
fqdn:n:rdata: |
一般レコード(タイプn) |
|
# |
comment --- |
コメント行 |
この行は無視される。 |
C |
fqdn:p: |
CNAME レコード |
fqdnの正規名を値とする |
Z |
fqdn:mname:rname:...ser:ref:ret:exp:min: |
SOA レコード |
|
tinydns-data用のファイルを読み込んで、type別に分けて出力python scriptを作ってみた。 -- ToshinoriMaeno 2015-12-09 05:49:48
# a = dict() def makedict(c): a[c] = dict() if __name__ == "__main__": import fileinput for c in ".&@=+'^:#CZ-%" : makedict(c) for line in fileinput.input(): rr = line[0] if (rr=="#") : continue attr = line[1:-1].split(":") print rr, attr if len(attr)>1: a[rr][attr[0]] = attr[1:] print '-------' for x in a.items(): if len(x[1]): print '===', x[0], '===' for y in x[1:]: for z in sorted(y.keys()): print z, y[z]