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 相关文章推荐
Java Web开发过程中登陆模块的验证码的实现方式总结
May 25 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
微信跳一跳自动运行python脚本
Jan 08 Python
python删除服务器文件代码示例
Feb 09 Python
python如何定义带参数的装饰器
Mar 20 Python
pandas多级分组实现排序的方法
Apr 20 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
Python for循环搭配else常见问题解决
Feb 11 Python
Python3 用什么IDE开发工具比较好
Nov 28 Python
conda安装tensorflow和conda常用命令小结
Feb 20 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Oct 16 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 stripslashes和addslashes的区别
2014/02/03 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
php文件系统处理方法小结
2016/05/23 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python修改注册表终止360进程实例
2014/10/13 Python
python利用装饰器进行运算的实例分析
2015/08/04 Python
win10系统中安装scrapy-1.1
2016/07/03 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
python批量下载抖音视频
2019/06/17 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
python中的django是做什么的
2020/07/31 Python
我的网上商城创业计划书
2013/12/26 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
2014年保卫工作总结
2014/12/05 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL
Android Studio 计算器开发
2022/05/20 Java/Android
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers