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登录Gmail并发送Gmail邮件的教程
Apr 17 Python
浅谈python中截取字符函数strip,lstrip,rstrip
Jul 17 Python
python3个性签名设计实现代码
Jun 19 Python
Python tkinter label 更新方法
Oct 11 Python
python实现列表中最大最小值输出的示例
Jul 09 Python
Python 如何提高元组的可读性
Aug 26 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Python生态圈图像格式转换问题(推荐)
Dec 02 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
python同义词替换的实现(jieba分词)
Jan 21 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
Python爬虫实现百度翻译功能过程详解
May 29 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开启安全模式后禁用的函数集合
2011/06/26 PHP
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
心扬JS分页函数代码
2010/09/10 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
Python拆分大型CSV文件代码实例
2019/10/07 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
python 如何实现遗传算法
2020/09/22 Python
基于CSS3 animation动画属性实现轮播图效果
2017/09/12 HTML / CSS
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
生物学学生自我评价
2014/01/17 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
KTV员工管理制度
2015/08/06 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android
Python编写冷笑话生成器
2022/04/20 Python
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL