python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法


Posted in Python onMay 15, 2015

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

Python 相关文章推荐
Python 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
python实现简单的计时器功能函数
Mar 14 Python
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
python 中的list和array的不同之处及转换问题
Mar 13 Python
python merge、concat合并数据集的实例讲解
Apr 12 Python
Linux 修改Python命令的方法示例
Dec 03 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
python内存动态分配过程详解
Jul 15 Python
python之拟合的实现
Jul 19 Python
使用PyCharm安装pytest及requests的问题
Jul 31 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 Python
python实现发送QQ邮件(可加附件)
Dec 23 Python
python获取当前时间对应unix时间戳的方法
May 15 #Python
Python加pyGame实现的简单拼图游戏实例
May 15 #Python
Python实现从URL地址提取文件名的方法
May 15 #Python
Python基础入门之seed()方法的使用
May 15 #Python
Python中的random()方法的使用介绍
May 15 #Python
Python的randrange()方法使用教程
May 15 #Python
Python中的choice()方法使用详解
May 15 #Python
You might like
thinkphp分页集成实例
2017/07/24 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
js继承的实现代码
2010/08/05 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
python matplotlib坐标轴设置的方法
2017/12/05 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
Python模块 _winreg操作注册表
2020/02/05 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
关于旷工的检讨书
2014/02/02 职场文书
毕业自我评价
2014/02/05 职场文书
北大自主招生自荐信
2015/03/04 职场文书
公司奖励通知
2015/04/21 职场文书
行政复议决定书
2015/06/24 职场文书
水浒传读书笔记
2015/06/25 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
python读取mnist数据集方法案例详解
2021/09/04 Python
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫