运行环境
pip 22.0.4
python 3.10
windows 10 专业版
安装wmi模块
pip3.10 install wmi
自定义类
说明:不同环境相关子类的属性各不相同,可以通过将遍历结果打印出来根据实际情况进行筛选。
import wmi
class Computer():
def __init__(self):
self.cmp = wmi.WMI();
self.infos=[]
self.showInfos()
def showInfos(self):
self.infos.append('电脑配置:')
# print(dir(self.cmp.__dict__))
# 获取主板信息
self.infos.append('\n')
self.infos.append('主板信息:')
for bbd in self.cmp.Win32_BaseBoard():
self.infos.append('制造商:%s' % bbd.Manufacturer)
self.infos.append('主板型号:%s' % bbd.Product)
self.infos.append('服务编号:%s' % bbd.SerialNumber)
self.infos.append('主板状态:%s' % bbd.Status)
# 获取处理器信息
self.infos.append('\n')
self.infos.append('处理器信息:')
for cpu in self.cmp.Win32_Processor():
# print(cpu)
self.infos.append('处理器型号:%s' % cpu.Name)
self.infos.append('数据位数:%d' % cpu.DataWidth)
self.infos.append('二级缓存:%d' % cpu.L2CacheSize)
self.infos.append('三级缓存:%d' % cpu.L3CacheSize)
self.infos.append('核心数量:%d' % cpu.NumberOfCores)
self.infos.append('逻辑核数:%d' % cpu.NumberOfLogicalProcessors)
self.infos.append('CPU状态:%s' % cpu.Status)
# 查看物理磁盘信息
self.infos.append('\n')
self.infos.append('物理磁盘信息:')
for pdisk in self.cmp.Win32_DiskDrive():
# print (pdisk)
self.infos.append('磁盘:%d'%pdisk.Index)
self.infos.append('磁盘名称:%s'%pdisk.Caption)
self.infos.append('服务编号:%s'%pdisk.SerialNumber.strip())
self.infos.append('磁盘大小:' + str(round(int(pdisk.Size) / (1024 * 1024 * 1024), 0)))
self.infos.append('磁盘状态:' + pdisk.Status)
# 查看磁盘分区信息
self.infos.append('\n')
self.infos.append('磁盘分区信息:')
for ldisk in self.cmp.Win32_logicalDisk():
if ldisk.DriveType == 3:
# print(ldisk)
self.infos.append(ldisk.Name)
self.infos.append('文件系统:'+ldisk.FileSystem)
self.infos.append('磁盘大小:'+str(round(int(ldisk.Size)/(1024*1024*1024),0)))
self.infos.append('剩余空间:' + str(round(int(ldisk.FreeSpace) / (1024 * 1024 * 1024), 0)))
self.infos.append('磁盘空置率:%0.2f%%'%round(int(ldisk.FreeSpace) /int(ldisk.Size)*100,2))
# 查看BIOS信息
self.infos.append('\n')
self.infos.append('BIOS信息:')
for bios in self.cmp.Win32_BIOS():
self.infos.append('制造商:%s' % bios.Manufacturer)
self.infos.append('服务编号:%s' % bios.SerialNumber)
self.infos.append('BIOS版本号:%s' % bios.SMBIOSBIOSVersion)
self.infos.append('BIOS版本号(制造商):%s' % bios.Version)
# 查看网络适配器信息
self.infos.append('\n')
self.infos.append('网络适配器信息:')
for mac in self.cmp.Win32_NetworkAdapter():
if mac.PhysicalAdapter:
self.infos.append('适配器信息:%s' % mac.AdapterType)
self.infos.append('适配器描述:%s' % mac.Description)
self.infos.append('适配器GUID:%s' % mac.GUID)
self.infos.append('适配器Mac地址:%s' % mac.MACAddress)
# 查看进程信息
self.infos.append('\n')
self.infos.append('进程信息:')
for pcs in self.cmp.Win32_Process():
self.infos.append('进程ID:%s' % pcs.ProcessId)
self.infos.append('进程名称:%s' % pcs.Name)
self.infos.append('启动时间:%s' % pcs.CreationDate.split('.')[0])
self.infos.append('运行地址:%s' % pcs.CommandLine)
# 获取本机Ip地址
self.infos.append('\n')
self.infos.append('本机Ip地址:')
for ips in self.cmp.Win32_NetworkAdapterConfiguration():
if ips.IPAddress:
self.infos.append('Ip地址:%s' % str(ips.IPAddress[0]))
# print(ips.IPAddress[0])
# print(type(ips.IPAddress))
self.infos.append('子网掩码:%s' % ips.IPSubnet[0])
self.infos.append('网关地址:%s' % ips.DefaultIPGateway)
self.infos.append('Dns地址:%s' % ips.DNSServerSearchOrder)
self.infos.append('是否DHCP:%s' % ips.DHCPEnabled)
if __name__ == '__main__':
cmp = Computer()
for item in cmp.infos:
print (item)