- ベストアンサー
複数のDNSサーバ登録してるときのgethostbyname()の名前解決
お世話になります。 例えばFreeBSDで、/etc/resolv.confに複数(2つ以上)のDNSサーバを登録しているとき、 gethostbyname()関数はどのようにして名前解決を図ろうとするのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>最初のDNSサーバが応答したけど、名前解決できなかったら >次のDNSサーバを読みにいくということは、出来ないものなのでしょうか? 案1: 自分でDNSサーバとUDPパケットで会話する部分を書く 案2: popenで、"dig @server hostname" か "nslookup hostname server" を呼び出して、結果を読み取る 案3: プログラムからresolv.confを書き直してから gethostbynameする(これは無茶か)
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
回答No.1
最初のDNSサーバーに問い合わせて、無応答の時だけ、次のDNSサーバーに問い合わせます。 「見つからない」という応答が返ったら次には問い合わせませんよ。
質問者
お礼
早速ご回答いただきありがとうございます。 >「見つからない」という応答が返ったら次には問い合わせませんよ。 するとこのときは、次のDNSサーバで、仮に名前解決できるとしても、 gethostbyname()の戻り値としては、nullになってしまうという事ですか・・・。 最初のDNSサーバが応答したけど、名前解決できなかったら 次のDNSサーバを読みにいくということは、出来ないものなのでしょうか? もし良ければ、何かいい方法をご教示いただけないでしょうか。
お礼
ご回答いただきありがとうございます!! とっても勉強になりました!