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获取从命令行输入数字的方法
Apr 29 Python
python追加元素到列表的方法
Jul 28 Python
浅谈Python实现贪心算法与活动安排问题
Dec 19 Python
全面分析Python的优点和缺点
Feb 07 Python
python实现读Excel写入.txt的方法
Apr 29 Python
django加载本地html的方法
May 27 Python
浅谈python的dataframe与series的创建方法
Nov 12 Python
python交换两个变量的值方法
Jan 12 Python
Pytorch加载部分预训练模型的参数实例
Aug 18 Python
python hashlib加密实现代码
Oct 17 Python
python+opencv边缘提取与各函数参数解析
Mar 09 Python
获取CSDN文章内容并转换为markdown文本的python
Sep 06 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乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
异步加载script的代码
2011/01/12 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
js动态生成表格(节点操作)
2021/01/12 Javascript
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
python 获取et和excel的版本号
2009/04/09 Python
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
Python动态加载模块的3种方法
2014/11/22 Python
Python+Opencv识别两张相似图片
2020/03/23 Python
python 内置函数filter
2017/06/01 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
Python生成器以及应用实例解析
2018/02/08 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
《穷人》教学反思
2014/04/08 职场文书
六年级学生评语
2014/04/22 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
海上钢琴师观后感
2015/06/03 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书