プロが教えるわが家の防犯対策術!

たとえば、IPアドレスが255.255.255.255という情報から、gethostbyaddr関数を使って、tokyo01.ppp11.***.ne.jpというリモートホストを得る仕組みを教えてください。
どうやって逆引きしてるんでしょうか?
ローカルサーバーでgethostbyaddrを使うと、インターネットに接続されているときはリモートホストを返すますが、インターネットの接続を切るとリモートホストを返しません。
ネームサーバに問い合わせるのでしょうか?
だとすると、どのネームサーバーが使われるのでしょうか。

A 回答 (1件)

ご指摘の通り、逆引きは正引きと同様にネームサーバーに問合せを行います。


使用OSが書いていないのではずしているかもしれませんが、Windowsの場合は、コマンドプロンプトからipconfig /allと叩いてみてください。使用中のネームサーバーのIPアドレスが表示されます。またwinipcfgコマンドでも確認できます。

UNIX系OSの場合は、/etc/resolv.confファイルを見てください。
nameserver www.xxx.yyy.zzz
という行があるはずなので、これがネームサーバーです。

インターネット接続していないと逆引きできないというのは、インターネット接続時以外の通常時に使用されるネームサーバーが指定されていないためです。
Windowsであれば、ネットワークコンピュータ→プロパティ→ネットワークカードにバインドされているTCP/IPプロトコルを選択して、プロパティ→DNSタブで設定できます。

ローカルのLAN上にネームサーバーが存在しなければ、取りあえずサーバー上で以下の設定をすれば逆引きできるようになると思います。

Win9x系 c:\windows\hosts
WinNT系 c:\windows\system\drivers\etc\hosts
UNIX系 /etc/hosts

のファイルに逆引きしたいIPアドレスとホスト名を書いてみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!