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中的yield浅析
Jun 16 Python
python绘制双柱形图代码实例
Dec 14 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
Python matplotlib画图与中文设置操作实例分析
Apr 23 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
pytorch使用指定GPU训练的实例
Aug 19 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
python 怎样进行内存管理
Nov 10 Python
python 获取剪切板内容的两种方法
Nov 28 Python
python基于openpyxl生成excel文件
Dec 23 Python
解决pycharm修改代码后第一次运行不生效的问题
Feb 06 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
Feb 24 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 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
判断用户是否在线的代码
2011/03/05 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
python实现class对象转换成json/字典的方法
2016/03/11 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
python+selenium识别验证码并登录的示例代码
2017/12/21 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
PHP面试题集
2016/12/18 面试题
机电一体化专业推荐信
2013/12/03 职场文书
文员的职业生涯规划发展方向
2014/02/08 职场文书
认识深刻的检讨书
2014/02/16 职场文书
《开国大典》教学反思
2014/04/19 职场文书
工作会议方案
2014/05/21 职场文书
三问三解心得体会
2014/09/05 职场文书
2014年双拥工作总结
2014/11/21 职场文书
员工2014年度工作总结
2014/12/09 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android