to 68userさん さっそくですが、IPv6 のアドレス省略について 双方のプログラム(resolver-1.pl, 1058.txt)に バグがあるかも知れないのでご報告します。 一例として、 198.41.0.4 www.yahoo.co.jpと入力して、 {A, B, C, D, E, F}.DNS.jpを表示させたとき、 追加情報の F.DNS.jp の出力結果は下記のとおりになります。 resolver-1.pl 2001:2F8::100::153 私の出力結果 2001:2f8::100:0:0:0:153 ちなみにEtherealの出力結果は下記のとおりです。 2001:2f8:0:100::153 IPv6 のアドレス省略表記に関する説明を下記のサイトで拝見したのですが、 http://www.soi.wide.ad.jp/iw2001/slides/04/04-1/53.html そこには IPv6 のアドレス表記に関して2つの原則が書かれていました。 1,【連続する】0 のブロックは省略できる。 2,省略できるのは【1ヶ所】だけ。 そして出力結果から推察するに、 resolver-1.pl では、原則の1, 2共に満たしてないように見受けられます。 perl が分からないので想像ですが、 resolver-1.pl では 0 を見つけたら即座に :: に置き換え、 何回でも省略が使用できるように組んであるのかなと思われます。 私の方では、一度省略を使用したら、二度と使えないようには組んでいるのですが、 0 は即座に :: に置き換えております。 そのため 0 を見つけたら、次の場所を見て、 ・次の場所も 0 なら :: に置き換える ・次の場所が 0 で無ければ、 0 を出力する。 というコードを追加しないといけないかもしれません。 勘違いでしたらすいません。 |