• ベストアンサー

複数のDNSサーバ登録してるときのgethostbyname()の名前解決

お世話になります。 例えばFreeBSDで、/etc/resolv.confに複数(2つ以上)のDNSサーバを登録しているとき、 gethostbyname()関数はどのようにして名前解決を図ろうとするのでしょうか?

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

>最初のDNSサーバが応答したけど、名前解決できなかったら >次のDNSサーバを読みにいくということは、出来ないものなのでしょうか? 案1: 自分でDNSサーバとUDPパケットで会話する部分を書く 案2: popenで、"dig @server hostname" か "nslookup hostname server" を呼び出して、結果を読み取る 案3: プログラムからresolv.confを書き直してから gethostbynameする(これは無茶か)

akkn2010
質問者

お礼

ご回答いただきありがとうございます!! とっても勉強になりました!

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

最初のDNSサーバーに問い合わせて、無応答の時だけ、次のDNSサーバーに問い合わせます。 「見つからない」という応答が返ったら次には問い合わせませんよ。

akkn2010
質問者

お礼

早速ご回答いただきありがとうございます。 >「見つからない」という応答が返ったら次には問い合わせませんよ。 するとこのときは、次のDNSサーバで、仮に名前解決できるとしても、 gethostbyname()の戻り値としては、nullになってしまうという事ですか・・・。 最初のDNSサーバが応答したけど、名前解決できなかったら 次のDNSサーバを読みにいくということは、出来ないものなのでしょうか? もし良ければ、何かいい方法をご教示いただけないでしょうか。

関連するQ&A