0

を使用するプログラム (C で記述) がgetaddrinfo()あり、その最初のパラメーターは、アドレス情報を取得するホスト名です。たとえば、「ドメイン」としましょう。同じマシン上の私の/etc/hostsファイルでは、「ドメイン」が 192.168.1.200 に解決されるはずであることがわかります。プログラムを実行すると、毎回この呼び出しでハングし、アドレス情報を取得できません。ただし、「ドメイン」を実際の IP アドレスに置き換えると、問題なく動作します。

ところで、この問題は 1 週間ほど前には存在しませんでしたが、突然醜い頭をもたげてきた新しい問題です。先週、このマシンに何かが行われたに違いないと確信しており、他のスタッフにこれを確認しようとしましたが、彼らもなぜこれが起こるのかわかりません.

それで、私の質問は、これが突然何が起こるか知っている人はいますか? あるべきように構成されていることを確認するには、何を確認できますか? 前もって感謝します。

4

1 に答える 1

1

Linuxを使用していますか?私の推測ではlibnss、おそらくglibcのアップグレードの失敗によって、glibcがすべての名前ルックアップ(ホスト名、ユーザー名、グループ名など)をルーティングするために使用する混乱で何かを台無しにしたと思います。でプログラムを実行してみて、ファイルstraceを開こうとしている(そして失敗している)かどうかを確認してくださいlibnss_*。また、行が。で/etc/nsswitch.confあることを確認するために調べてください。役に立つかもしれません。hosts:hosts: files dnsman nsswitch.conf

于 2010-11-11T23:26:32.363 に答える