Python 如何查找我的计算机中有多少以太网卡?

Python 如何查找我的计算机中有多少以太网卡?,python,Python,我想写代码来找出我的计算机有多少以太网卡。有什么想法吗?好的,出于某种原因,我想OP有windows操作系统 import win32com.client strComputer = "." objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator") objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2") colItems =

我想写代码来找出我的计算机有多少以太网卡。有什么想法吗?

好的,出于某种原因,我想OP有windows操作系统

import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_NetworkAdapterConfiguration")
print len(filter(lambda obj : obj.Caption.lower().find('ethernet') > -1, colItems))
您可以在此处下载导入的win32模块

注意,我已经计算了这些适配器,其中Caption属性包含单词“ethernet”。也许你会想使用一些更聪明的标准


来源:

在Linux上,您可以读取/proc/net/dev文件或使用系统执行ifconfig-s,有关详细信息,请参阅proc。或者,您可以与SIOCGIFCONF一起使用。在其他类似UNIX的系统上,ifconfig和fcntl.ioctl也应该起作用。

除非您考虑到任何特定的操作系统,否则没有可移植的方法来实现这一点

对于Win32/Win64,您可以从ipconfig/all解析o/p 对于linux,您可以从lshw类网络解析o/p 至于其他系统,这里也应该有类似的东西 您可以通过添加更多系统、命令和解析字符串来扩展以下代码

>>> netCmds={'Windows': [['ipconfig', '/all'], 'Description',':'], 'Linux': [['lshw', '-class', 'network'], 'product',':']}
>>> netcmd=netCmds[platform.system()]
>>> for l in subprocess.check_output(netcmd[0]).splitlines():
        if netcmd[1] in l:
            print l.split(netcmd[2])[-1]
如果您需要支持更多的系统,只需附加netCmds列表,如下所示

:[…],]


请注意,系统信息应与目标操作系统中的platform.System一致。

当问题是关于特定组件时,您应指定操作系统以获得更好的答案。我将使用子流程而不是系统。也要提到这一点,这是正确的观点。谢谢你的链接。