python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
本文实例讲述了python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法。分享给大家供大家参考。具体实现方法如下:
#!/usr/bin/envpython
#-*-coding:utf-8-*-
importwmi
importsys,time,platform
defget_system_info(os):
"""
获取操作系统版本。
"""
print
print"Operatingsystem:"
ifos=="Windows":
c=wmi.WMI()
forsysinc.Win32_OperatingSystem():
print'\t'+"Version:\t%s"%sys.Caption.encode("GBK")
print'\t'+"Vernum:\t%s"%sys.BuildNumber
defget_memory_info(os):
"""
获取物理内存和虚拟内存。
"""
print
print"memory_info:"
ifos=="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)
defget_disk_info(os):
"""
获取物理磁盘信息。
"""
print
print"disk_info:"
ifos=="Windows":
tmplist=[]
c=wmi.WMI()
forphysical_diskinc.Win32_DiskDrive():
ifphysical_disk.Size:
print'\t'+str(physical_disk.Caption)+':\t'+str(long(physical_disk.Size)/1024/1024/1024)+"G"
defget_cpu_info(os):
"""
获取CPU信息。
"""
print
print"cpu_info:"
ifos=="Windows":
tmpdict={}
tmpdict["CpuCores"]=0
c=wmi.WMI()
forcpuinc.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"])
defget_network_info(os):
"""
获取网卡信息和当前TCP连接数。
"""
print
print"network_info:"
ifos=="Windows":
tmplist=[]
c=wmi.WMI()
forinterfaceinc.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)
foriintmplist:
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"]
forinterfacePerfTCPinc.Win32_PerfRawData_Tcpip_TCPv4():
print'\t'+'TCPConnect:\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程序设计有所帮助。