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构造函数及解构函数介绍
Feb 26 Python
Python调用C++程序的方法详解
Jan 24 Python
Django contenttypes 框架详解(小结)
Aug 13 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
Sep 13 Python
python保存二维数组到txt文件中的方法
Nov 15 Python
python中使用 xlwt 操作excel的常见方法与问题
Jan 13 Python
Python实现的文轩网爬虫完整示例
May 16 Python
Python 实现加密过的PDF文件转WORD格式
Feb 04 Python
Python 面向对象部分知识点小结
Mar 09 Python
基于Python 的语音重采样函数解析
Jul 06 Python
Python中的面向接口编程示例详解
Jan 17 Python
Python爬取英雄联盟MSI直播间弹幕并生成词云图
Jun 01 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
Yii分页用法实例详解
2014/12/04 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
javascript开发中因空格引发的错误
2010/11/08 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
python实战之实现excel读取、统计、写入的示例讲解
2018/05/02 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
北京天润融通.net面试题笔试题
2012/02/20 面试题
演讲稿怎么写才完美
2014/01/02 职场文书
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
仓管岗位职责范本
2014/02/08 职场文书
幼儿园家长评语
2014/02/10 职场文书
《燕子》教学反思
2014/02/18 职场文书
小学端午节活动方案
2014/03/13 职场文书
幼儿园招生广告
2014/03/19 职场文书
出租房屋协议书
2014/09/14 职场文书
家长会欢迎词
2015/01/23 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
处理canvas绘制图片模糊问题
2022/05/11 Javascript