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

发布于 2024-12-10 12:22:04 字数 459 浏览 0 评论 0原文

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

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

通过这个问题,我发现Win 7阻止了广播消息。当我手动输入本地网络广播地址时,效果很好。现在我想编写一些代码来迭代所有本地网络适配器(类似于 NetworkInterfaces.GetAllNetworkInterfaces()),并查找每个适配器连接到的网络的本地网络广播地址,如果任何。

这有道理吗?最好的方法是 ping 与 Win 7、IPv6、IPv4 等兼容的本地子网。换句话说,普遍兼容。

谢谢!

I'm building a device discovery system using a UDP broadcast message. I started out using UdpClient and IPAddress.Broadcast.

The solution worked for clients on the local machine, but not other clients on the local network.

Via this question, I discovered that Win 7 blocks broadcast messages. When I manually entered the local network broadcast address it worked great. Now I want to write some code that will iterate through all of the local network adapters (something like NetworkInterfaces.GetAllNetworkInterfaces()) and find the local network broadcast address for the network each adapter is connected to, if any.

Does this make sense? What's the best was to ping the local subnet that would be compatible with Win 7, IPv6, IPv4, etc. In other words, universally compatible.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

橙幽之幻 2024-12-17 12:22:04

好吧,比如……?

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

Ok, something like...?

  foreach (NetworkInterface Interface in NetworkInterface.GetAllNetworkInterfaces())
        {
            if (Interface.SupportsMulticast)
            {
                IPInterfaceProperties IPProperties = Interface.GetIPProperties();
                foreach (IPAddressInformation  address in IPProperties.MulticastAddresses)
                {
                    Console.WriteLine(address.Address);
                }
            }
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文