Python pysnmp使用方法及代码实例


Posted in Python onAugust 24, 2020

SNMP标准引入一组ASN.1语言元素,称之为SMI(Structure of Management Information)。由SMI描述的相互关联的被管对象(Managed Objects)组成MIB(Management Information Base)模块。

核心MIB中经常用到的Managed Objects成为SNMP标准的一部分。剩下的MIB一般由设备生产商在其设备中创建。(也就是说这些MIB是生产商和设备相关的)

PySNMP是一个纯粹用Python实现的SNMP。

用PySNMP的最抽象的API为One-line Applications。其中有两类API:同步的和非同步的,都在模块pysnmp.entity.rfc3413.oneliner.cmdgen 中实现。

所以在使用的时候为了方便,可以

from pysnmp.entity.rfc3413.oneliner import cmdgen
然后用
cg = cmdgen.CommandGenerator()
来产生一个CommandGenerator对象,
以后调用cg的getCmd等方法来获取或者设置网络设备信息。

getCmd()需要三个参数:

1.cmdgen.CommunityData() ##社区信息 传入三个数据,安全my-agent、社区名public、snmp协议版本,之间用逗号隔开,例如 cmdgen.CommunityData('my-agent', 'public', 1)

2.cmdgen.UdpTransportTarget() ##通道参数,传入一个元组,包含主机IP/域名和端口,例如:cmdgen.UdpTransportTarget(('192.168.70.237', 161)

3. OID ##mib值,例如 '.1.3.6.1.4.1.1800.5.13.2'

注意:三个参数之间用 ","隔开。

下面上个例子是获得设备snmp数据:

from pysnmp.entity.rfc3413.oneliner import cmdgen
 
def snmpget():
  cg = cmdgen.CommandGenerator() ##获得CommandGenerator对象
  errorIndication, errorStatus, errorIndex, varBinds = cg.getCmd(
   #0代表v1,1代表v2c 
  cmdgen.CommunityData('my-agent', 'public', 1), ##社区信息,my-agent ,public 表示社区名,1表示snmp v2c版本,0为v1版本
  cmdgen.UdpTransportTarget(('192.168.70.237', 161)),##这是传输的通道,传输到IP 192.168.70.237, 端口 161上(snmp标准默认161 UDP端口)
  '.1.3.6.1.4.1.1800.5.13.2' ##传送的OID,个人认为MIB值
  )
  print str(varBinds[0][1]); ##varBinds返回是一个stulp,含有MIB值和获得值
def runit(loop=1):
  for i in range(loop):
    snmpget()
    #print i
if __name__ == "__main__":
  runit(loop=1)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
linux系统使用python监控apache服务器进程脚本分享
Jan 15 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
python绘制铅球的运行轨迹代码分享
Nov 14 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
Oct 14 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
python3实现猜数字游戏
Dec 07 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
Jul 04 Python
python requests证书问题解决
Sep 05 Python
快速解释如何使用pandas的inplace参数的使用
Jul 23 Python
python神经网络编程之手写数字识别
May 08 Python
详解python tcp编程
Aug 24 #Python
Python rabbitMQ如何实现生产消费者模式
Aug 24 #Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 #Python
深入分析python 排序
Aug 24 #Python
超级实用的8个Python列表技巧
Aug 24 #Python
基于CentOS搭建Python Django环境过程解析
Aug 24 #Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 #Python
You might like
PHP教程 变量定义
2009/10/23 PHP
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
php 删除cookie方法详解
2014/12/01 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
用Python实现协同过滤的教程
2015/04/08 Python
Django中使用locals()函数的技巧
2015/07/16 Python
Python内建模块struct实例详解
2018/02/02 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
基于django传递数据到后端的例子
2019/08/16 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
建筑安全员岗位职责
2014/03/13 职场文书
2014年学校体育工作总结
2014/12/08 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
MySQL基础(二)
2021/04/05 MySQL
python基础之函数的定义和调用
2021/10/24 Python
MySQL创建管理子分区
2022/04/13 MySQL