• ベストアンサー

IPとホスト名の変換について

お世話になります。 ホストからIPに変換する方法としてgethostbynameを使って変換したところ、違うIPが表示されてしまいます。 うまく取得出来るホストもありますが、一部のホストが何度やっても違うIPとなってしまいます。 正確に取得出来ない原因として、何かありますでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

IPアドレスから複数のホスト名が出てくる場合もあります。 さらに提示されているホストは、複数のネームサーバを介して名前とIPの変換を行いますが、 そのネームサーバの設定が一部異なっているようです。 そのため、名前解決時に使用するサーバの割り当てが変更する都度、結果も変わっているようですね。

参考URL:
http://stackoverflow.com/questions/5682421/getting-all-hostnames-from-ip-address-in-perl
hana43
質問者

補足

回答いただきありがとうございます。 複数のネームサーバーを介してるとのことですが、それはどのようにしたら確認出来るのでしょうか? そこら辺り勉強不足で、教えていただけるとありがたいです。 また、URLも拝見させていただきましたが、IPからホストの変換は出来ているのですが、ホストからIPへの変換がやはり出来ないようです。。。 正引きの許可がされてないって可能性も考えられますでしょうか。

その他の回答 (2)

  • teketon
  • ベストアンサー率65% (141/215)
回答No.3

ネームサーバはns.joetsu(略、ns1.joetsu、ns2、ns3が同様にあるようです。 nslookupコマンドを使用し、1の補足のサーバで正引き(名前からIP取得)を行うと、 解決できるサーバとできないサーバがありました。それが原因じゃないかなと思った次第です。

hana43
質問者

お礼

回答ありがとうございます。 丁寧に教えていただき、ありがとうございます。 確かに複数台のネームサーバーがあるようで、それが原因なのかもしれません。。。 とりあえず、もう少し調べてみます。 ありがとうございました。

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

hosts ファイルで設定したアドレスが表示されているとか。 あるいは、ホスト名に対して複数のIPアドレスが定義されていることがありますが、その中のひとつを表示している。 http://docstore.mik.ua/orelly/perl/cookbook/ch18_02.htm の Perl CookBook の 「18.1. Simple DNS Lookups」に定義されている複数のアドレスを取得するコードがあります。

hana43
質問者

補足

回答いただきありがとうございます。 hostsファイルを確認してみましたが、そこには設定されていませんでした。 また、教えていただいたURLを確認して、試してみましたが同じ結果となってしまいました…。 例として現在試しているIPは202.32.154.3で、gethostbyaddrによりホストに変換すると202032154003.joetsu.ne.jpが取得出来ます。 逆に、202032154003.joetsu.ne.jpをgethostbynameでIPに変換しようとすると、全く違くIPが表示されてしまいます。 他のwebサイトではちゃんと取得出来ているところもありますので、取得出来ると思うのですが…。 その他、何か参考になる点はありませんでしょうか。 よろしくお願いします。

関連するQ&A