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生成一个导出数据库的bat脚本文件的方法
Dec 30 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
python简单实例训练(21~30)
Nov 15 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
python实现两个文件合并功能
Apr 01 Python
Python Pywavelet 小波阈值实例
Jan 09 Python
对python中词典的values值的修改或新增KEY详解
Jan 20 Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
python redis 批量设置过期key过程解析
Nov 26 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 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
PHP 压缩文件夹的类代码
2009/11/05 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
php截取中文字符串函数实例
2015/02/23 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
php简单防盗链实现方法
2015/07/29 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
javascript排序函数实现数字排序
2015/06/26 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
python+selenium+autoit实现文件上传功能
2017/08/23 Python
python实现八大排序算法(2)
2017/09/14 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
大学运动会通讯稿
2014/01/28 职场文书
护士求职信范文
2014/05/24 职场文书
求职信怎么写范文
2014/05/26 职场文书
闪闪红星观后感
2015/06/08 职场文书
JS封装cavans多种滤镜组件
2022/02/15 Javascript
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技
springboot读取nacos配置文件
2022/05/20 Java/Android
MySQL导致索引失效的几种情况
2022/06/25 MySQL