MoinQ:

1. djbdns/tinydns/record

djbdns (D. J. Bernstein作)
tinydns-data プログラム の データ形式

DNS 情報は行の並びからなる。行末の空白とタブは無視される。

フィールドは省略できる場合もあるが、コロンは行末のものを除き省略できない。

項目には末尾に ttl:timestamp:location を付けられる。

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]

MoinQ: djbdns/tinydns/record (last edited 2024-10-18 07:33:57 by ToshinoriMaeno)