python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
admin
2023-07-31 02:20:19
0

本文实例讲述了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程序设计有所帮助。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...