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中列表list以及list与数组array的相互转换实现方法
Sep 22 Python
对Python 内建函数和保留字详解
Oct 15 Python
基于python指定包的安装路径方法
Oct 27 Python
python的继承知识点总结
Dec 10 Python
Python处理session的方法整理
Aug 29 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
Oct 23 Python
如何在python中写hive脚本
Nov 08 Python
Python的缺点和劣势分析
Nov 19 Python
Python网页解析器使用实例详解
May 30 Python
解决python 执行sql语句时所传参数含有单引号的问题
Jun 06 Python
属性与 @property 方法让你的python更高效
Sep 21 Python
利用python批量爬取百度任意类别的图片的实现方法
Oct 07 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
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
web前端开发也需要日志
2010/12/09 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
Python Django搭建网站流程图解
2020/06/13 Python
python中的错误如何查看
2020/07/08 Python
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
黄河的主人教学反思
2014/02/07 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
作风整顿剖析材料
2014/09/30 职场文书
商业用房租赁协议书
2014/10/13 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
2014年科研工作总结
2014/12/03 职场文书
银行工作心得体会范文
2016/01/23 职场文书
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫