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使用在线API查询IP对应的地理位置信息实例
Jun 01 Python
python脚本设置超时机制系统时间的方法
Feb 21 Python
python动态加载包的方法小结
Apr 18 Python
深入浅出分析Python装饰器用法
Jul 28 Python
机器学习10大经典算法详解
Dec 07 Python
Python3使用pandas模块读写excel操作示例
Jul 03 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
Python 多线程,threading模块,创建子线程的两种方式示例
Sep 29 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
OpenCV Python实现拼图小游戏
Mar 23 Python
Pycharm连接gitlab实现过程图解
Sep 01 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
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
php实现微信发红包功能
2018/07/13 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
2020/04/07 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
Python之日期与时间处理模块(date和datetime)
2017/02/16 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
销售副总经理岗位职责
2013/12/11 职场文书
工作的心得体会
2013/12/31 职场文书
探亲邀请信范文
2014/01/30 职场文书
一月红领巾广播稿
2014/02/11 职场文书
前处理组长岗位职责
2014/03/01 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle