本文實例講述了python使用WMI檢測windows系統信息、硬盤信息、網卡信息的方法。分享給大家供大家參考。具體實現方法如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wmi
import sys,time,platform
def get_system_info(os):
"""
獲取操作系統版本。
"""
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 "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 "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 "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 "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程序設計有所幫助。