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 列表(List)操作方法详解
Mar 11 Python
一步步解析Python斗牛游戏的概率
Feb 12 Python
Python实现的从右到左字符串替换方法示例
Jul 06 Python
Python 给某个文件名添加时间戳的方法
Oct 16 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 Python
Python循环中else,break和continue的用法实例详解
Jul 11 Python
Python (Win)readline和tab补全的安装方法
Aug 27 Python
通过实例简单了解Python中yield的作用
Dec 11 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
python切割图片的示例
Nov 12 Python
基于PyInstaller各参数的含义说明
Mar 04 Python
python中redis包操作数据库的教程
Apr 19 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+mysql留言本源码
2009/11/11 PHP
thinkPHP框架实现生成条形码的方法示例
2018/06/06 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
微信小程序开发探究
2016/12/27 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
javascript+css3开发打气球小游戏完整代码
2017/11/28 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
python基于socket实现网络广播的方法
2015/04/29 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
Python实现简单http服务器
2018/04/12 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
python Plotly绘图工具的简单使用
2020/03/03 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
俄罗斯三星品牌商店:Samsungstore
2020/04/05 全球购物
自行车租赁公司创业计划书
2014/01/28 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
四大名著读书笔记
2015/06/25 职场文书
赞助商致辞
2015/07/30 职场文书
如何使用flask将模型部署为服务
2021/05/13 Python
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技
JavaScript实现简单的音乐播放器
2022/08/14 Javascript