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中的字典与成员运算符初步探究
Oct 13 Python
Python中functools模块函数解析
Mar 12 Python
python中defaultdict的用法详解
Jun 07 Python
Python操作Sql Server 2008数据库的方法详解
May 17 Python
python实现简单的文字识别
Nov 27 Python
Django分页功能的实现代码详解
Jul 29 Python
用Python做一个久坐提醒小助手的示例代码
Feb 10 Python
Python如何使用paramiko模块连接linux
Mar 18 Python
Python 爬虫性能相关总结
Aug 03 Python
使用Python将语音转换为文本的方法
Aug 10 Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 25 Python
深入浅析Django MTV模式
Sep 04 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单例模式实现(对象只被创建一次)
2012/12/05 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
读jQuery之七 判断点击了鼠标哪个键的代码
2011/06/21 Javascript
js有序数组的连接问题
2013/10/01 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
JS提交form表单实例分析
2015/12/10 Javascript
拖动时防止选中
2017/02/03 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
Python查看多台服务器进程的脚本分享
2014/06/11 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
基于python中__add__函数的用法
2019/11/25 Python
使用python远程操作linux过程解析
2019/12/04 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
面试后感谢信怎么写
2014/02/01 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
Python编程中Python与GIL互斥锁关系作用分析
2021/09/15 Python
关于 Python json中load和loads区别
2021/11/07 Python
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis
Pandas数据结构之Series的使用
2022/03/31 Python