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使用 HTMLTestRunner.py生成测试报告
Oct 20 Python
python爬虫基本知识
Mar 05 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
python实现决策树分类
Aug 30 Python
Python button选取本地图片并显示的实例
Jun 13 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
python序列化与数据持久化实例详解
Dec 20 Python
利用setuptools打包python程序的方法步骤
Jan 18 Python
MATLAB数学建模之画图汇总
Jul 16 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
Dec 28 Python
python文本处理的方案(结巴分词并去除符号)
May 26 Python
pytorch 梯度NAN异常值的解决方案
Jun 05 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
使用apache模块rewrite_module (转)
2007/02/14 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
php时间函数用法分析
2016/05/28 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
js function定义函数使用心得
2010/04/15 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
JS实现点击下载的小例子
2013/07/10 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
javascript操作css属性
2013/12/30 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
详解Angular的双向数据绑定(MV-VM)
2016/12/26 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
Python如何实现在字符串里嵌入双引号或者单引号
2020/03/02 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
优秀教导主任事迹材料
2014/05/09 职场文书
化妆品活动策划方案
2014/05/23 职场文书
法律专业求职信
2014/05/24 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书