2011-10-18 21 views
1

私はUDPブロードキャストメッセージを使用してデバイス検出システムを構築しています。私はUdpClientIPAddress.Broadcastを使い始めました。すべてのローカルネットワークブロードキャストアドレスを見つける

解決策は、ローカルマシンのクライアントでは機能しましたが、ローカルネットワーク上の他のクライアントでは機能しませんでした。

this question経由で、私はWin 7がブロードキャストメッセージをブロックすることを発見しました。ローカルのネットワークブロードキャストアドレスを手動で入力したときにうまくいきました。次に、すべてのローカルネットワークアダプタ(NetworkInterfaces.GetAllNetworkInterfaces()のようなもの)を繰り返し実行するコードを記述し、各アダプタが接続されているネットワークのローカルネットワークブロードキャストアドレスを探します。

これは意味がありますか?最高のものはWin 7、IPv6、IPv4などと互換性のあるローカルサブネットにpingすることでした。つまり、普遍的に互換性があります。

ありがとうございます!

答えて

4

foreach (NetworkInterface Interface in NetworkInterface.GetAllNetworkInterfaces()) 
     { 
      if (Interface.SupportsMulticast) 
      { 
       IPInterfaceProperties IPProperties = Interface.GetIPProperties(); 
       foreach (IPAddressInformation address in IPProperties.MulticastAddresses) 
       { 
        Console.WriteLine(address.Address); 
       } 
      } 
     } 
    } 
+0

WMIの代わりに 'NetworkInterface'クラスでこれを行うことはできますか? –

関連する問題