用Python编程查看网络上的其他计算机

2024-04-26 11:07:47 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以用Python(或任何编程语言)查看同一网络上的其他设备?

编辑:为了澄清,我想做的(刚开始)是显示一个连接的设备及其本地IP地址的列表。所以在我的路由器上,它会显示信息:

家庭电脑,192.168.1.2 笔记本电脑,192.168.1.3

我想找回这些信息。


Tags: 网络信息编辑列表家庭路由器编程语言笔记本电脑
3条回答

你到底想干什么?

nmap是扫描网络的一个非常常见的工具,看起来您想要这样做。还有一个python-nmap包,可以让您轻松地直接从Python中使用nmap。

请详细一点,这样我们可以给你一个更好的答案,干杯。

如果你不介意使用一个小的第三方软件,你可以使用Netresview在windows系统上运行良好,避免重新发明轮子和所有这些。你可以做这种事。

os.system('NetResView.exe /DisplayComputers 1 /RetrieveIPAddresses /stext ipfile')
my_file = open('ipfile')
for line in my_file :
    print myfile.readline()

你有几个选择。

您可以在整个网络地址空间中运行端口扫描,但这非常浪费而且不友好。我不推荐。

更好的方法是使用诸如DNS-SD/Zeroconf(又称Bonjour)的服务发现协议查询设备。大多数Linux和Mac系统都会响应,许多网络打印机和其他网络设备也会响应。Windows系统不附带DNS-SD代理,但可以安装一个。

DNS-SD的纯python实现是available here。我在Linux、MacOS和Windows上使用过它。

如果你喜欢微软的方法,你可以尝试一下UPnP的发现特性,尽管我不能保证它有多好的工作或者有多少系统会响应。

相关问题 更多 >