是否可以在Python(或任何编程语言)中查看同一网络上的其他设备?
编辑:为了澄清,我想做的事情(刚刚开始)是显示连接的设备列表及其本地IP地址。所以在我的路由器上,它会显示信息:
family_pc,192.168.1.2 work_laptop,192.168.1.3
我想检索此信息。
答案 0 :(得分:7)
你准备做什么?
nmap
是一种非常常见的扫描网络工具,这似乎是您想要做的。还有一个python-nmap包,可以让您轻松地在Python中直接使用nmap。
请更详细,以便我们为您提供更好的答案,欢呼。
答案 1 :(得分:3)
你有几个选择。
您可以在整个网络地址空间上运行端口扫描,但这非常浪费且不友好。我不推荐它。
更好的方法是使用服务发现协议查询设备,例如DNS-SD / Zeroconf(又名Bonjour)。大多数Linux和Mac系统都会响应,许多网络打印机和其他网络设备也会响应。 Windows系统不附带DNS-SD代理,但可以安装一个。
DNS-SD的纯python实现是available here。我在Linux,MacOS和Windows上使用过它。
如果您更喜欢Microsoft方法,可以尝试UPnP的发现功能,但我无法保证它的工作情况或响应的系统数量。
答案 2 :(得分:-1)
如果你不介意使用一点点第三方软件,你可以使用Netresview在Windows系统上运行良好,避免重新发明轮子等等。你可以这样做。
os.system('NetResView.exe /DisplayComputers 1 /RetrieveIPAddresses /stext ipfile')
my_file = open('ipfile')
for line in my_file :
print myfile.readline()