返信

福光さん,こんばんわ。
返事遅くなりました。ゴメンナサイ。

> これもリゾルバを呼び出しているのでしょうか?

そうですね。

> (Winsockプログラミングの教則本に載っているpingコマンドはgethostbyname関数を使って実装していますね)。

gethostbynameがリゾルバを呼び出すための関数ですから,
それを使っているっていうことはリゾルバを呼び出している
っていうことになりますね。

> pingコマンド(※)はICMPのプロトコルで動作しているにもかかわらず、

ICMPのパケットを扱うっていうことと,
リゾルバを呼び出すことはまったく別のことなので,
ICMPを使うプログラムがリゾルバを呼び出しても,何もおかしくありません。
リゾルバを呼び出して名前解決するっていうことは,
ホスト名からIPアドレスを調べるっていうだけのことですから。

>名前解決できるかを診断するには一般にnslookupを使います。

pingでホスト名を指定することによって
名前解決できるかどうか判断する方法もあるでしょう。
単に名前解決ができるかどうかだけ調べるだけなら,
それでも十分だからです。
一方,nslookupの方は名前解決の可否だけでなく,
もっといろいろな事を調べることができます。
もう少し詳しく言うと,名前解決が可能かどうかは,
DNSのAレコードに対する問い合わせができるか否かということになりますが,
nslookupを使えばAレコードの問い合わせだけでなく,
PTRレコードを調べたり(いわゆる逆引きですね),
MXレコードを調べたり,その他のレコードを調べたり,
TCP/IPの設定項目に指定されたものと異なるDNSサーバにを指定できたり,
というようにいろいろな問い合わせができる,っていうことです。
nslookupを使う意義は,そちらの方にあるんじゃないかしら。

>pingよりもnslookupを使ったほうがよいと聞いたことがあるのですが、

これは,上に書いたようにいろいろなことができるから,
そちらの方がよい,という話なんじゃないかしら。

<code>Only

  • 使用できるHTMLタグ: <code>
  • 文字で図を描く場合に<code>と</code>で囲んでください
画像認証
機械的なスパムメッセージ送信を防止するために画像認証を設けています。ご協力ください。
Image CAPTCHA
Enter the characters shown in the image.