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 相关文章推荐
python逐行读取文件内容的三种方法
Jan 20 Python
Python实现确认字符串是否包含指定字符串的实例
May 02 Python
django框架防止XSS注入的方法分析
Jun 21 Python
Python Django Cookie 简单用法解析
Aug 13 Python
python常用排序算法的实现代码
Nov 08 Python
Python函数式编程指南:对生成器全面讲解
Nov 19 Python
python 初始化一个定长的数组实例
Dec 02 Python
手动安装python3.6的操作过程详解
Jan 13 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 Python
python实现单机五子棋
Aug 28 Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 Python
Python图片验证码降噪和8邻域降噪
Aug 30 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 feof用来识别文件末尾字符的方法
2010/08/01 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
Opacity.js
2007/01/22 Javascript
Node.js编码规范
2014/07/14 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
js+html5实现半透明遮罩层弹框效果
2020/08/24 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
vue中appear的用法
2017/08/17 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
python使用urllib2提交http post请求的方法
2015/05/26 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
python文件拆分与重组实例
2018/12/10 Python
详解python使用turtle库来画一朵花
2019/03/21 Python
Python如何基于Tesseract实现识别文字功能
2020/06/05 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
旅游管理实习自我鉴定
2013/09/29 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
《天游峰的扫路人》教学反思
2014/04/25 职场文书
应届毕业生求职信
2014/05/26 职场文书
汽车运用工程专业求职信
2014/06/18 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
联片教研活动总结
2014/07/01 职场文书
授权委托书
2014/07/31 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
学生检讨书怎么写
2015/05/07 职场文书
MySQL常见优化方案汇总
2022/01/18 MySQL