萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> python使用WMI檢測windows系統信息、硬盤信息、網卡信息的方法

python使用WMI檢測windows系統信息、硬盤信息、網卡信息的方法

   本文實例講述了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

  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程序設計有所幫助。

copyright © 萬盛學電腦網 all rights reserved