68user's page 掲示板

Prev< No. 4393> Next  [最新発言に戻る] [過去ログ一覧]
No. 4393 # DNS勉強中 2005/11/14 (月) 09:44:17
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 を出力する。
というコードを追加しないといけないかもしれません。

勘違いでしたらすいません。

Prev< No. 4393> Next  [最新発言に戻る] [過去ログ一覧]