查找所有本地网络广播地址

时间:2011-10-18 20:19:38

标签: .net networking udp broadcast

我正在使用UDP广播消息构建设备发现系统。我开始使用UdpClientIPAddress.Broadcast

该解决方案适用于本地计算机上的客户端,但不适用于本地网络上的其他客户端。

通过this question,我发现Win 7会阻止广播消息。当我手动输入本地网络广播地址时,它工作得很好。现在我想编写一些代码来迭代所有本地网络适配器(类似NetworkInterfaces.GetAllNetworkInterfaces()),并找到每个适配器连接到的网络的本地网络广播地址(如果有的话)。

这有意义吗?什么是最好的是ping与Win 7,IPv6,IPv4等兼容的本地子网。换句话说,普遍兼容。

谢谢!

1 个答案:

答案 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);
                }
            }
        }
    }