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 字典(Dictionary)操作详解
Mar 11 Python
Python中尝试多线程编程的一个简明例子
Apr 07 Python
python中logging库的使用总结
Oct 18 Python
python实现决策树ID3算法的示例代码
May 30 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
python3的输入方式及多组输入方法
Oct 17 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
Oct 23 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
python传到前端的数据,双引号被转义的问题
Apr 03 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
Windows下Anaconda和PyCharm的安装与使用详解
Apr 23 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
多数据表共用一个页的新闻发布
2006/10/09 PHP
php&java(二)
2006/10/09 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
js中call与apply的用法小结
2013/12/28 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
Reactjs实现通用分页组件的实例代码
2017/01/19 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
python实现屏保计时器的示例代码
2018/08/08 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
向国旗敬礼活动小结
2014/09/27 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
宣传委员竞选稿
2015/11/19 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记