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

时间:2010-07-12 23:29:32

标签: python networking device

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

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

family_pc,192.168.1.2 work_laptop,192.168.1.3

我想检索此信息。

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()