我正在使用UDP广播消息构建设备发现系统。我开始使用UdpClient
和IPAddress.Broadcast
。
该解决方案适用于本地计算机上的客户端,但不适用于本地网络上的其他客户端。
通过this question,我发现Win 7会阻止广播消息。当我手动输入本地网络广播地址时,它工作得很好。现在我想编写一些代码来迭代所有本地网络适配器(类似NetworkInterfaces.GetAllNetworkInterfaces()
),并找到每个适配器连接到的网络的本地网络广播地址(如果有的话)。
这有意义吗?什么是最好的是ping与Win 7,IPv6,IPv4等兼容的本地子网。换句话说,普遍兼容。
谢谢!
答案 0 :(得分:4)
好的,像......?
foreach (NetworkInterface Interface in NetworkInterface.GetAllNetworkInterfaces())
{
if (Interface.SupportsMulticast)
{
IPInterfaceProperties IPProperties = Interface.GetIPProperties();
foreach (IPAddressInformation address in IPProperties.MulticastAddresses)
{
Console.WriteLine(address.Address);
}
}
}
}