本文实例讲述了python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法。分享给大家供大家参考。具体实现方法如下:
#!/usr/bin/env python # -*- coding: utf-8 -*- import wmi import sys,time,platform def get_system_info(os): \"\"\" 获取操作系统版本。 \"\"\" print print \"Operating system:\" if os == \"Windows\": c = wmi.WMI () for sys in c.Win32_OperatingSystem(): print \'\\t\' + \"Version :\\t%s\" % sys.Caption.encode(\"GBK\") print \'\\t\' + \"Vernum :\\t%s\" % sys.BuildNumber def get_memory_info(os): \"\"\" 获取物理内存和虚拟内存。 \"\"\" print print \"memory_info:\" if os == \"Windows\": c = wmi.WMI () cs = c.Win32_ComputerSystem() pfu = c.Win32_PageFileUsage() MemTotal = int(cs[0].TotalPhysicalMemory)/1024/1024 print \'\\t\' + \"TotalPhysicalMemory :\" + \'\\t\' + str(MemTotal) + \"M\" #tmpdict[\"MemFree\"] = int(os[0].FreePhysicalMemory)/1024 SwapTotal = int(pfu[0].AllocatedBaseSize) print \'\\t\' + \"SwapTotal :\" + \'\\t\' + str(SwapTotal) + \"M\" #tmpdict[\"SwapFree\"] = int(pfu[0].AllocatedBaseSize - pfu[0].CurrentUsage) def get_disk_info(os): \"\"\" 获取物理磁盘信息。 \"\"\" print print \"disk_info:\" if os == \"Windows\": tmplist = [] c = wmi.WMI () for physical_disk in c.Win32_DiskDrive(): if physical_disk.Size: print \'\\t\' + str(physical_disk.Caption) + \' :\\t\' + str(long(physical_disk.Size)/1024/1024/1024) + \"G\" def get_cpu_info(os): \"\"\" 获取CPU信息。 \"\"\" print print \"cpu_info:\" if os == \"Windows\": tmpdict = {} tmpdict[\"CpuCores\"] = 0 c = wmi.WMI () for cpu in c.Win32_Processor(): tmpdict[\"CpuType\"] = cpu.Name try: tmpdict[\"CpuCores\"] = cpu.NumberOfCores except: tmpdict[\"CpuCores\"] += 1 tmpdict[\"CpuClock\"] = cpu.MaxClockSpeed print \'\\t\' + \'CpuType :\\t\' + str(tmpdict[\"CpuType\"]) print \'\\t\' + \'CpuCores :\\t\' + str(tmpdict[\"CpuCores\"]) def get_network_info(os): \"\"\" 获取网卡信息和当前TCP连接数。 \"\"\" print print \"network_info:\" if os == \"Windows\": tmplist = [] c = wmi.WMI () for interface in c.Win32_NetworkAdapterConfiguration (IPEnabled=1): tmpdict = {} tmpdict[\"Description\"] = interface.Description tmpdict[\"IPAddress\"] = interface.IPAddress[0] tmpdict[\"IPSubnet\"] = interface.IPSubnet[0] tmpdict[\"MAC\"] = interface.MACAddress tmplist.append(tmpdict) for i in tmplist: print \'\\t\' + i[\"Description\"] print \'\\t\' + \'\\t\' + \"MAC :\" + \'\\t\' + i[\"MAC\"] print \'\\t\' + \'\\t\' + \"IPAddress :\" + \'\\t\' + i[\"IPAddress\"] print \'\\t\' + \'\\t\' + \"IPSubnet :\" + \'\\t\' + i[\"IPSubnet\"] for interfacePerfTCP in c.Win32_PerfRawData_Tcpip_TCPv4(): print \'\\t\' + \'TCP Connect :\\t\' + str(interfacePerfTCP.ConnectionsEstablished) if __name__ == \"__main__\": os = platform.system() get_system_info(os) get_memory_info(os) get_disk_info(os) get_cpu_info(os) get_network_info(os)
希望本文所述对大家的Python程序设计有所帮助。