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快速查找算法应用实例
Sep 26 Python
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
Nov 19 Python
Python实现堆排序的方法详解
May 03 Python
python 专题九 Mysql数据库编程基础知识
Mar 16 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
Apr 20 Python
用pycharm开发django项目示例代码
Oct 24 Python
Django 大文件下载实现过程解析
Aug 01 Python
Django Python 获取请求头信息Content-Range的方法
Aug 06 Python
python不使用for计算两组、多个矩形两两间的iou方式
Jan 18 Python
Python数据正态性检验实现过程
Apr 18 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 Python
Pandas 稀疏数据结构的实现
Jul 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 采集获取指定网址的内容
2010/01/05 PHP
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
PHP 第二节 数据类型之数组
2012/04/28 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
python使用RNN实现文本分类
2018/05/24 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
Python用SSH连接到网络设备
2021/02/18 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
介绍一下mysql的日期和时间函数
2013/03/28 面试题
新学期标语
2014/06/30 职场文书
儿子满月酒致辞
2015/07/29 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python