# *********************************snmp使用********************************************
# coding=utf-8
"""
filename:snmp_test.py 说明:
使用系统的 snmpwalk 来查询设备信息,需要先安装 snmp
代码 Windows 和 Linux 通用 Windows cmd 调用示例:snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.1 Windows cmd 下查看某主机(192.168.132.130)信息示例:
snmpwalk -v 2c -c public 192.168.132.130 1.3.6.1.2.1.1.1
""" # import re
# import os
# import time
# import platform
#
# if 'Windows' == platform.system():
# hosts = ['localhost']
# else:
# # 在虚拟机运行时则查看本地
# hosts = ['127.0.0.1']
#
# def snmpWalk(host, oid):
# result = os.popen('snmpwalk -v 2c -c public ' + host + ' ' + oid).read().split('\n')[:-1]
# return result
#
# # ------------------------------------------------------------
# # 获取负载信息
# # ------------------------------------------------------------
#
#
# def getSystem(host):
# system = ':'.join(snmpWalk(host, 'system')[0].split(':')[3:]).strip()
# return system
#
# # ------------------------------------------------------------
#
# # ------------------------------------------------------------
# # 获取负载信息
# # ------------------------------------------------------------
#
#
# def getLoad(host, loid):
# """系统负载"""
# load_oids = '1.3.6.1.4.1.2021.10.1.3.' + str(loid)
# return snmpWalk(host, load_oids)[0].split(':')[3]
#
#
# def getLoads(host):
# load1 = getLoad(host, 1)
# load10 = getLoad(host, 2)
# load15 = getLoad(host, 3)
# return load1, load10, load15
#
# # ------------------------------------------------------------
#
# # ------------------------------------------------------------
# # 获取网卡流量
# # ------------------------------------------------------------
#
#
# def getNetworkDevices(host):
# """获取网络设备信息"""
# device_mib = snmpWalk(host, 'RFC1213-MIB::ifDescr')
# device_list = []
# for item in device_mib:
# device_list.append(item.split(':')[3].strip())
# return device_list
#
#
# def getNetworkData(host, oid):
# """获取网络流量"""
# data_mib = snmpWalk(host, oid)
# data = []
# for item in data_mib:
# byte = float(item.split(':')[3].strip())
# data.append(str(round(byte / 1024, 2)) + ' KB')
# return data
#
#
# def getNetworkInfo(host):
# device_list = getNetworkDevices(host)
# # 流入流量
# inside = getNetworkData(host, 'IF-MIB::ifInOctets')
# # 流出流量
# outside = getNetworkData(host, 'IF-MIB::ifOutOctets')
# return device_list, inside, outside
#
# # ------------------------------------------------------------
#
#
# # ------------------------------------------------------------
# # 内存使用率
# # ------------------------------------------------------------
#
# def getSwapTotal(host):
# swap_total = snmpWalk(host, 'UCD-SNMP-MIB::memTotalSwap.0')[0].split(' ')[3]
# return swap_total
#
#
# def getSwapUsed(host):
# swap_avail = snmpWalk(host, 'UCD-SNMP-MIB::memAvailSwap.0')[0].split(' ')[3]
# swap_total = getSwapTotal(host)
# swap_used = str(round(((float(swap_total) - float(swap_avail)) / float(swap_total)) * 100, 2)) + '%'
# return swap_used
#
#
# def getMemTotal(host):
# mem_total = snmpWalk(host, 'UCD-SNMP-MIB::memTotalReal.0')[0].split(' ')[3]
# return mem_total
#
#
# def getMemUsed(host):
# mem_total = getMemTotal(host)
# mem_avail = snmpWalk(host, 'UCD-SNMP-MIB::memAvailReal.0')[0].split(' ')[3]
# mem_used = str(round(((float(mem_total) - float(mem_avail)) / float(mem_total)) * 100, 2)) + '%'
# return mem_used
#
#
# def getMemInfo(host):
# mem_used = getMemUsed(host)
# swap_used = getSwapUsed(host)
# return mem_used, swap_used
#
# # ------------------------------------------------------------
#
# def main():
# for host in hosts:
#
# print('=' * 10 + host + '=' * 10)
# start = time.time()
# print("系统信息")
# system = getSystem(host)
# print(system)
#
# print("系统负载")
# load1, load10, load15 = getLoads(host)
# print('load(5min): %s ,load(10min): %s ,load(15min): %s' % (load1, load10, load15))
#
# print("网卡流量")
# device_list, inside, outside = getNetworkInfo(host)
# for i, item in enumerate(device_list):
# print('%s : RX: %-15s TX: %s ' % (device_list[i], inside[i], outside[i]))
#
# mem_used, swap_used = getMemInfo(host)
# print("内存使用率")
# print('Mem_Used = %-15s Swap_Used = %-15s' % (mem_used, swap_used))
#
# end = time.time()
# print('run time:', round(end - start, 2), 's')
#
# if __name__ == '__main__':
# main()

硬件交互 snmp 使用的更多相关文章

  1. Android系统编程入门系列之硬件交互——多媒体摄像头

    多媒体系列硬件 多媒体包括图片.动画.音频.视频,这些多媒体素材的采集(输入)主要依靠摄像头和麦克风等硬件设备转化为基础数据,而他们的播放渲染(输出),则需要依靠具有相关功能的编解码软件.当然随着硬件 ...

  2. Android系统编程入门系列之硬件交互——通信硬件USB

    在硬件交互的首篇对设备硬件的分类中,互联通信系列硬件主要用来与其他设备进行数据交互.从本文开始,将重点介绍该系列相关硬件. 互联通信系列硬件 根据硬件的可通信距离,由近及远分为USB.NFC.蓝牙.W ...

  3. Android系统编程入门系列之硬件交互——传感器

    到目前为止,关于应用程序与用户之间的相关内容便比较肤浅的大致介绍完毕.而在整个系统架构中,应用程序与用户之间的交互,犹如参天大树上的枝干和树叶,交互起来五彩缤纷,但使整个生态系统保持生命力的核心,在于 ...

  4. Android系统编程入门系列之硬件交互——通信硬件Bluetooth

    通信硬件NFC的文章,虽然可以在Android系统中通过非直接接触的形式与支持NFC硬件的设备通信,但是也只能交互一些简短的标签内容,对大量的持续性数据,却并不能很好的支持.因此针对这个弊端,可以考虑 ...

  5. Android系统编程入门系列之硬件交互——多媒体麦克风

    在多媒体摄像头及相关硬件文章中,对摄像头的使用方式需要区分应用程序的目标版本以使用不同的代码流程,而与之相比,麦克风硬件的使用就简单多了. 麦克风及相关硬件 麦克风硬件在移动设备上作为音频的采集设备, ...

  6. Android系统编程入门系列之硬件交互——多媒体展示

    前两篇文章通过麦克风硬件和摄像头硬件分别采集音频和视频的多媒体数据,在得到的多媒体数据通常是以编码文件的格式存储,在用户需要展示时,可通过设备的内置扩音器或蓝牙耳机等硬件播放音频,通过设备的显示屏或外 ...

  7. Android系统编程入门系列之硬件交互——通信硬件NFC

    在上篇文章介绍了接入式USB硬件的简单使用,接下来将介绍不依赖物理连接的硬件通信了.本文的重点是近距离通信的硬件NFC. NFC硬件 应用程序中可以通过NFC硬件读取或发送指定协议的技术实现,在And ...

  8. 蓝牙硬件交互数据传输Demo

    #import "ViewController.h" #import <CoreBluetooth/CoreBluetooth.h> @interface ViewCo ...

  9. Android系统编程入门系列之硬件交互——无线通信WLAN

    Android系统的移动设备大多支持无线WLAN技术.利用该技术,不仅能实现互联网通信,还能实现无线定位,热点共享等远程通信功能.针对使用WLAN的不同功能,可能需要分别申请不同的权限声明,同时调用不 ...

随机推荐

  1. Pytest(16)随机执行测试用例pytest-random-order

    前言 通常我们认为每个测试用例都是相互独立的,因此需要保证测试结果不依赖于测试顺序,以不同的顺序运行测试用例,可以得到相同的结果. pytest默认运行用例的顺序是按模块和用例命名的 ASCII 编码 ...

  2. Docker下使用centos无法使用systemctl怎么办

    提交正在使用的容器: docker commit [ContainerId] 提交停止正在运行无法使用Systemctl的容器: docker stop [ContainerId] 删除这个容器(可选 ...

  3. Centos根目录100%解决思路

    Centos 7 根目录(爆满)100%解决思路,下面以宝塔面板环境为例 1.首先远程到服务器,在~下输入df -h ,看下根目录下文件夹使用情况 [root@localhost~]# df -h F ...

  4. Codeforces Round #672 (Div. 2)

    比赛链接:https://codeforces.com/contest/1420 A. Cubes Sorting 题意 给出一个大小为 $n$ 的数组 $a$,每次只可以交换相邻的两个元素,最多交换 ...

  5. Educational Codeforces Round 102 (Rated for Div. 2) D. Program (思维,前缀和)

    题意:给你一个只含\(+\)和\(-\)的字符串,给你一个数\(x\),\(x\)初始为\(0\),随着字符串的遍历会加一减一,现在有\(m\)个询问,每个询问给出一个区间\([l,r]\)表示将这个 ...

  6. AtCoder Beginner Contest 177 E - Coprime (数学)

    题意:给你\(n\)个数,首先判断它们是否全都__两两互质__.然后再判断它们是否全都互质. 题解:判断所有数互质很简单,直接枚举跑个gcd就行,关键是第一个条件我们要怎么去判断,其实我们可以对所有数 ...

  7. 考研路茫茫——单词情结 HDU - 2243 AC自动机 && 矩阵快速幂

    背单词,始终是复习英语的重要环节.在荒废了3年大学生涯后,Lele也终于要开始背单词了. 一天,Lele在某本单词书上看到了一个根据词根来背单词的方法.比如"ab",放在单词前一般 ...

  8. Java_web-response的outputStream和Write输出数据的问题

    解决方法: 把方法换成这个也可以: 因为浏览器也是一个html解析工具,所以认识html文本 下面这个直接write(1),那么浏览器上就会显示L 这个样子在浏览器上看到的就是1: 字节流输出: 这个 ...

  9. C# 静态构造函数 和 非静态构造函数

    静态构造函数是在构造函数方法前面添加了static关键字之后形成的,并且没有修饰符(public,private),没有参数. 特点:1.静态构造函数没有修饰符修饰(public,private),因 ...

  10. .net面试--值类型和引用类型

    注:下面的示意图主要是为了辅助理解,不代表内存真实情况. Introduction 类型基础是C#的基础概念,了解类型基础及背后的工作原理更有助于我们在编码的时候明白数据在内存中的分配与传递.C#提供 ...