さらに調査すると、これはWMI(Windows Management Infrastructure)の一部であるように見えます。
WMIクエリ: http:
//msdn.microsoft.com/en-us/library/ms186146 (v = vs.80).aspx
WMI検索条件のリスト:http:
//msdn.microsoft.com/en-us/library/windows/desktop/aa394554 (v = vs.85).aspx
WMIの使用:http:
//msdn.microsoft.com/en-us/library/windows/desktop/aa393964 (v = vs.85).aspx
書籍:
http ://www.amazon.com/s/ref=nb_sb_noss_1?url = search-alias%3Daps&field-keywords = WMI
サンプルコード:
ManagementObjectSearcher adapters = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionStatus = 2");
foreach (ManagementObject item in adapters.Get())
{
foreach (ManagementObject setting in item.GetRelated("Win32_NetworkAdapterConfiguration"))
{
if ((!setting["IPAddress"].IsNull()) &&
(!setting["IPSubnet"].IsNull()))
{
foreach (string value in (String[])setting["IPAddress"])
{
mySocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
mySocket.Bind(new IPEndPoint(IPAddress.Parse(value), 49984));
//etc...
}
}
}
}
これは全体としてかなり記念碑的なトピックのように見えますが、少なくともこれは私にそれを理解しようとする場所を与えてくれました。しかし、これが私が解決しようとしている問題の良い解決策であるかどうかについては、まだ完全に確信が持てません。