## page was renamed from DNS/実装/djbdns/tinydns/record == djbdns/tinydns/record == <> {{{ 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 <> {{{ # 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] }}}