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 01 Python
python中__slots__用法实例
Jun 04 Python
举例讲解如何在Python编程中进行迭代和遍历
Jan 19 Python
详解python中的文件与目录操作
Jul 11 Python
教你用Python创建微信聊天机器人
Mar 31 Python
Django项目实战之用户头像上传与访问的示例
Apr 21 Python
Python3爬虫学习入门教程
Dec 11 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
Python imutils 填充图片周边为黑色的实现
Jan 19 Python
TensorFlow实现批量归一化操作的示例
Apr 22 Python
Django DRF认证组件流程实现原理详解
Aug 17 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
PHP 日,周,月点击排行统计
2012/01/11 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
php实现文件下载实例分享
2014/06/02 PHP
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
javascript EXCEL 操作类代码
2009/07/30 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
Python获取服务器信息的最简单实现方法
2015/03/05 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
常用的四种CSS透明属性介绍
2014/04/12 HTML / CSS
广州地球村科技数据库题目
2016/04/25 面试题
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
违章停车检讨书
2014/10/21 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
学校捐书活动总结
2015/05/08 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
PL350与SW11的比较
2021/04/22 无线电
写一个Python脚本自动爬取Bilibili小视频
2021/04/24 Python
SQL注入的实现以及防范示例详解
2021/06/02 MySQL