pysnmp学习(一)
来源:互联网 发布:linux修改时间 编辑:程序博客网 时间:2024/05/17 02:04
安装pysnmp:
编译安装的话,pysnmp需要用到asn.1,安装pysnmp的话需要先安装asn.1,不过我没有安装成功。
也可以使用easy_install pysnmp安装,不过我也没用安装成功,用的是mac,总是提示找不到编译器。
用mac很多东西都装不上,当然原因是我比较菜,并没用攻击mac的意思,而且我也不喜欢因为装个软件忙活半天,我就装了个ubuntu的虚拟机。
在ubuntu上使用apt-get安装, 软件包名称是python-pysnmp-se或者python-snmp-common。一条命令就搞定了。
在pysnmp里分别用getCmd,setCmd,nextCmd对应snmp里的get-request,set-request,get-next-request报文,pysnmp做的是snmp的管理进程,所以没有trap,get-response报文的定义。pysnmp里还有一个bulkCmd命令,和nextCmd差不多。
比较坑爹的事情发生了,下边是一段官方文档给出getCmd的示例代码,我运行了N次都是失败:
>>> from pysnmp.entity.rfc3413.oneliner import cmdgen>>> errorIndication, errorStatus, errorIndex, varBinds = cmdgen.CommandGenerator().getCmd(... cmdgen.CommunityData('my-agent', 'public', 0),... cmdgen.UdpTransportTarget(('localhost', 161)),... '1.3.6.1.2.1.1.1.0',... '1.3.6.1.2.1.1.2.0'... )>>> print(errorIndication)None>>> print(errorStatus)0>>> print(varBinds)[(ObjectName(1.3.6.1.2.1.1.1.0), OctetString('Linux saturn 2.6.37.6-smp #2 SMP Sat Apr 9 23:39:07 CDT 2011 i686')), (ObjectName(1.3.6.1.2.1.1.2.0), ObjectIdentifier(1.3.6.1.4.1.8072.3.2.10))]
提示的内容大概意思就是元组只能和元组链接,弄了一个晚上也没搞明白怎么回事,只好放弃了。往下接着看吧,刚往下一看问题马上解决了,这是setCmd的代码:
>>> from pysnmp.entity.rfc3413.oneliner import cmdgen>>> from pysnmp.proto import rfc1902>>> errorIndication, errorStatus, errorIndex, varBinds = cmdgen.CommandGenerator().setCmd(... cmdgen.CommunityData('my-agent', 'public', 1),... cmdgen.UdpTransportTarget(('localhost', 161)),... ((1,3,6,1,2,1,1,1,0), rfc1902.OctetString('my system description'))... )>>> print(errorIndication)None>>> print(errorStatus)17>>> print(errorStatus.prettyPrint())notWritable(17)
这段代码里的mib中各个数字之间是逗号,而上边确实句号,把上边的字符串改成元组马上就ok,太TMD坑爹了,对比发现上边是两个mib,下边是一个mib,或许用字符串的形式一次可以get多个mib,但是我确实没有成功,而且经过各种实验,也没有能够实现一次获取多个mib。
还有一个比较郁闷的是官方没有给出api,只是在文档里给了一些例子,太不给力了。
其实这东西也没啥难的,就是那个错误的例子让我浪费了好多时间⋯⋯⋯⋯
- pysnmp学习(一)
- PySNMP学习笔记(一)
- PySNMP学习笔记(一)
- PySNMP学习笔记(二)
- 一起学习PySNMP——理解什么是MIB
- pysnmp安装
- pysnmp官网
- PySNMP扩展snmp-trap
- pysnmp的安装
- pysnmp的first look
- pysnmp性能再测试
- pysnmp的安装
- PySNMP--GET command
- python利用pysnmp获取交换机级联接口
- Python使用pysnmp发送snmp v2c 告警
- ubuntu14.04 使用pysnmp SNMP trap 接受
- PySNMP官方文档翻译---常用操作
- Python通过pysnmp和nmap获取netstat
- Cyclone III datasheet 笔记
- Hibernate批量更新和批量删除
- java文件复制
- Objective-C 编程语言(2) 类,对象,消息 --- 对象与消息
- 跋涉不止(13)
- pysnmp学习(一)
- ubuntu mysql安装设置
- poj1523
- 使用spinlock需要注意的事项
- 微软亚洲研究院刘未鹏——“我在南大的七年”
- EFM32片内外设--AES ECB例程
- hibernate一级缓存和二级缓存的区别
- Oracle Golden Gate 系列十七 -- GG 一对多 real-time data distribution 说明 与 示例
- myeclipse的代码提示