如何在Python/Windows中列出网络接口及其IP、子网掩码和网关配置

3 投票
3 回答
13476 浏览
提问于 2025-04-16 08:49

我想开发一个小应用程序,用来监控局域网中的ARP(地址解析协议)并扫描ARP列表。

目前,我需要获取网络接口及其配置的列表。

我大部分时间都在使用Linux,所以对Win32 API不太了解,有没有办法用Python来实现这个功能?我现在用的是Python 2.6,搭配PyQt和Scapy(Scapy也有pywin32,所以如果你能提供详细的Win32实现方法,我会尝试一下)。

我找到了一些方法,比如pcapy.findalldevs(),但它无法获取配置。我对名称不太在意,只要能获取配置(比如IP地址和子网掩码)就可以了。

3 个回答

0

对于Linux系统,我使用的是pynetlinux这个工具。

pip install pynetlinux==1.1
>>> from pynetlinux import ifconfig
>>> ifconfig.Interface("eth0").get_ip()
'192.168.1.66'

补充说明:这确实是针对Linux的,如果你需要一个可以在多个平台上使用的解决方案,可以看看我在其他回答中的内容。

3

为了找到一个可以在不同平台上都能用的解决方案,我使用了 netifaces 这个库。

1

我不太确定你想要什么信息,但 ipconfig /all 这个命令听起来正是你需要的:

import subprocess
subprocess.call('ipconfig /all')

撰写回答