如何在Python/Windows中列出网络接口及其IP、子网掩码和网关配置
我想开发一个小应用程序,用来监控局域网中的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')