我目前正在编写一个python程序,需要在LAN上发现其自身的其他实例。它使用UDP广播进行发现(255.255.255.255)。
问题是,如果计算机有多个网络适配器(连接到多个网络),那么这些网络中只有一个将接收广播。我最初的想法是通过分配给本地网络的所有网络地址来枚举,并为每个网络发送一个广播包(例如192.168.0.255和192.168.1.255)。但是,似乎没有可靠的方法来检测所有本地网络地址,因为我发现和尝试的所有东西要么依赖于python-2专用的库,要么在我的linux虚拟机上只返回127.0.1.1 (它有192.168.0.100和其他一些)。
在这种情况下,我如何向所有可用的网络广播?
我正在使用Python 3,并且正在寻找独立于平台的方法来实现它,而且没有大型的第三方库。correctly显示所有网络接口的库将完成此工作。
发布于 2013-06-17 10:01:32
试试nmap。这里有满足您需要的python-nmap https://pypi.python.org/pypi/python-nmap
注意: 0.2.7版本号用于python-nmap__,而不是python本身,因此它在python3中工作)。
发布于 2013-06-17 10:06:33
有趣的问题。然而:
https://stackoverflow.com/questions/17143696
复制相似问题