2012-03-21 4 views
0

私は、Windowsワークグループ内のPCのホスト名からLAN上のそのPCのIPV4アドレスに変換するgetaddrinfo()を使用するアプリケーションを持っています。 (ノートでは、コードが実行されているPCのアドレスを取得するという意味ではなく、LAN上の別のPCのアドレスを意味します)。今私は異常に動作するWindows 7(32ビット)PCを持っています。このPCのホスト名は "elbow"です。getaddrinfo()はリモートホスト用に127.0.0.1を返します

私は私のLAN上の任意のPC上でこのサンプルコードを実行し、ホスト名として「肘」を指定した場合 http://msdn.microsoft.com/en-us/library/windows/desktop/ms738520%28v=vs.85%29.aspx

ではgetaddrinfo()のために、マイクロソフトが提供するサンプルコードをコンパイル

は、はgetaddrinfo()はループバックアドレスを返します。正しいもの(192.168.1.110)の代わりに127.0.0.1。しかし、他のホスト名を指定した場合、getaddrinfo()は正しいアドレスを返します。

過去のある時点で、「エルボー」はこの動作を示さなかったため、そのPCに関する何かがこの動作を引き起こすように変更されました。私はと思ってと思っていましたが、これは変更されていませんでした。 PCが有線LANに接続されているか、無線でLANに接続されているかにも違いはありません。 LAN上のすべてのPCでDHCPが有効になっています。この動作は、すべてのPC、ルータ、およびスイッチの完全なパワーダウンがあっても永続的です。

+0

私の間違った答えはなくなりました。私はあなたがこの質問に対して他の活動をしていないことを知っています。それは本当に不思議です。がんばろう! –

+0

非常に奇妙です!そしてそれは単方向性です - 奇妙なPCは他のすべてのPCのための正しいIPを得ることに何の問題もありません。 IPを「不可視」にするセキュリティ設定があるようです。私は以前にそのような設定を探しましたが、あなたはもう一度見てみると思います... – pnswdv

答えて

0

私はこれを答えで更新したいと考えていました。部屋のゾウはISPのDNSでした。私はサブネットがISPのDNSから隔離されていると誤解していましたが、そうではありませんでした。何らかの理由で、彼らのDNSはホスト名 "elbow"に対して127.0.0.1を返していますが、別の名前に変更するとすぐに私の問題はうまくいきました!私も同じ問題を抱えていた別のPCを明らかにし、名前を変更してもそれを修正しました。両方のPCが共通しているのは、両方がOSのリロードを受けていたことですが、OSのリロード後に問題が明らかになることはありませんでした。

1

同様の問題が発生し、他の誰かがこのスレッドを見つけた場合に備えてポストしたかったのです。

私たちの側には、顧客がインストールしたコンピュータで同じことが起こりました。私たちは、顧客がホストファイルを変更して127.0.0.1をPCの名前に関連付けることを発見しました。getaddrinfoを使って別のプログラムが失敗した特定のサブネットワークを見つけました...彼らはこの機能を使用するために一時的にコンピュータの名前を変更しました。ホストファイルを修正した可能性があります。

そのWindows 7コンピュータ上のhostsファイルは、/ windows/system32/drivers/etcにあります。

関連する問題