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中的super用法详解
May 28 Python
python获取mp3文件信息的方法
Jun 15 Python
python检查字符串是否是正确ISBN的方法
Jul 11 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
Python将字符串常量转化为变量方法总结
Mar 17 Python
python抖音表白程序源代码
Apr 07 Python
python使用threading.Condition交替打印两个字符
May 07 Python
python3正则模块re的使用方法详解
Feb 11 Python
python使用多线程+socket实现端口扫描
May 28 Python
python单元测试框架pytest的使用示例
Oct 07 Python
python tkinter Entry控件的焦点移动操作
May 22 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
星际争霸任务指南——人族
2020/03/04 星际争霸
PHP概述.
2006/10/09 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
2007/08/26 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
PHP中file_exists()判断中文文件名无效的解决方法
2014/11/12 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
2014/10/17 Javascript
angularJS提交表单(form)
2015/02/09 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
基于Python的身份证号码自动生成程序
2014/08/15 Python
Python中tell()方法的使用详解
2015/05/24 Python
python中requests小技巧
2017/05/10 Python
Python判断文件和字符串编码类型的实例
2017/12/21 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
python字符串的拼接方法总结
2019/11/18 Python
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
你不知道的5个HTML5新功能
2016/06/28 HTML / CSS
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
荷兰音乐会和音乐剧门票订购网站:Topticketshop
2019/08/27 全球购物
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS