我目前正在编写一个 python 程序,该程序需要在 LAN 上发现自身的其他实例。它使用 UDP 广播进行发现 ( 255.255.255.255
)。
问题是如果计算机有多个网络适配器(连接到多个网络),那么这些网络中只有一个会接收广播。我最初的想法是枚举分配给本地网络的所有网络地址,并为每个地址发送一个广播数据包(例如192.168.0.255
和192.168.1.255
)。但是,似乎没有可靠的方法来检测所有本地网络地址,因为我发现和尝试的所有内容要么依赖于 python-2-only 库,要么仅返回127.0.1.1
我的 linux 虚拟机(有192.168.0.100
和其他一些)。
在这种情况下,如何向所有可用网络广播?
我正在使用 Python 3,并且正在寻找与平台无关的方法,并且没有大型第三方库。correctly
显示所有网络接口的库可以完成这项工作。