用Python捕获snmp trap
2011年10月11日
Posted on 2004-10-16 12:17 流水 阅读(2590) 评论(3) 编辑 收藏
接触到pysnmp是因为项目中需要捕获一硬件设备发出来的snmp trap,并针对不同的event trap作出反应(声音告警、执行一些命令)。
pysnmp是“SNMP framework for Python”,可以让我们在Python的环境下捕获snmp trap,还有snmpset,snmpwalk,snmpget等。
pysnmp和pysnmp-apps的安装
pysnmp的安装就是解压出来的pysnmp目录放到c:\Python23\Lib\site-packages\
建议也下载pysnmp-apps-0.0.2.tar.gz,这个文件包括一些pysnmp的简单工具,相当于例程。将解压出来的pysnmpap目录放到c:\Python23\Lib\site-packages\
使用
pysnmp-apps-0.0.2.tar.gz里面有pysnmptrapd.py和pysnmptrap.py两个文件,一个收一个发。
用以下命令可以查看使用帮助:
# python pysnmptrapd.py -h
# python pysnmptrap.py -h
用以下命令接受snmp traps:
# python pysnmptrapd.py -f -o mysnmp.log 192.168.0.1:162
如果在Unix,不加-f就使pysnmptrapd.py以deamon的方式运行。因为是在Windows上执行,在Windows里pysnmptrapd.py无法用deamon方式运行,需要-f参数。-o mysnmp.log表示收到的snmp trap写到mysnmp.log这个文件。192.168.0.1是我运行pysnmptrapd.py的Windows机器的IP地址,162是接收snmp trap的udp端口。这些参数是针对我这个项目的环境的。
记得在设备上将snmp trap的destination地址设为192.168.0.1,这样就可以收到snmp traps了。
用以下命令发送snmp traps:
# python pysnmptrap.py 192.168.0.1:162 -c public .1.3.6.1.4.1.2.3.1.2.1.2 a 192.168.0.250 0 0
192.168.0.1:162是发送目标地址和端口,public是community,.1.3.6.1.4.1.2.3.1.2.1.2是enterprise-OID,a 192.168.0.250表示发送端地址(Agent Addr)是192.168.0.250,最后Generic Trap是0,Specific Trap也是0
对收到的snmp trap作出反应
用以下命令让pysnmptrapd.py收到snmp trap后调用myEventTrapHandler.py作出反应:
# python pysnmptrapd.py -f -o mysnmp.log -p myEventTrapHandler.py 192.168.0.1:162
查看pysnmptrapd.py的代码就知道有哪些参数传递给myEventTrapHandler.py
我修改了pysnmptrapd.py,使传递的参数符合我的需要,也改变了pysnmptrapd.py的一些参数缺省值,使这些缺省值适合项目环境。
总结
使用过pysnmp之后,发现利用pysnmp捕获snmp trap并作出反应是很轻松的事。现在我的Python程序可以捕获snmp trap,针对不同的trap播放WAV文件告警、执行一些命令,达到了预期的目标。
发表评论
-
白纸~~~神舞
2014-02-21 23:55 28216世纪金刚亥母造像, 体态妖娆灵动, 纹饰处 ... -
[互联网江湖]我当程序员的那些狗日日子
2014-02-21 23:54 345[互联网江湖]我当程序员的那些狗日日子 更多 ... -
解决Visual C++ 2008 Feature Pack Release安装失败的方法 ―― 在VS2008简体中文版上安装TR1
2012-01-20 01:59 1474解决Visual C++ 2008 Feature Pack ... -
[华为U8120沃达丰V845]官方刷机包的刷机方法
2012-01-20 01:59 2600[华为U8120沃达丰V845]官方刷机包的刷机方法 201 ... -
NET安全系列之三:用户与角色的概念/基于角色的安全
2012-01-20 01:59 690NET安全系列之三:用户与角色的概念/基于角色的安全 201 ... -
第7章 委托和事件
2012-01-20 01:59 664第7章 委托和事件 2011 ... -
silverlight 自定义转换器
2012-01-20 01:59 756silverlight 自定义转换器 2011年01月10日 ... -
Python 3.2.2 RC1发布
2012-01-19 09:47 554Python 3.2.2 RC1发布 2011年08月16日 ... -
在Windows上安装Python+MySQL 的常见问题及解决方法
2012-01-19 09:47 1176在Windows上安装Python+MySQL 的常见问题及解 ... -
一些python的三方库
2012-01-19 09:46 1227一些python的三方库 2010年06月14日 ... -
Qt(4.7)入门_Windows环境安装
2012-01-17 02:20 891Qt(4.7)入门_Windows环境安装 2012年01月 ... -
sysytem32下的文件及其作用的文章
2012-01-17 02:20 497sysytem32下的文件及其作用的文章 2011年11月2 ... -
关于eclipse配置android开发配置流程
2012-01-17 02:20 804关于eclipse配置android开发配置流程 2012年 ... -
关于Android4.0 emulator-arm.exe-应用程序错误,内存不能为"read"问题解决方法
2012-01-17 02:20 879关于Android4.0 emulator-arm.exe-应 ...
相关推荐
Python利用SNMP读取交换机端口信息及状态,通过路由器和交换机上启用SNMP协议,Python环境下安装net-snmp-python包实现
Java使用SNMP4J实现snmp trap接口发送消息_20170808_LK
snmp4j 实现snmp trap发送与接收
windows平台下,用于接收snmp协议的trap消息的小软件,可以测试你编写的trap命令是否发送成功了
监听SNMPtrap消息的小工具,自带解析功能
利用SNMP4J实现Snmp Trap完整例子 - 企业应用 - Java - JavaEye论坛.mht
vc++ snmp trap例子 源码
最近调试SNMP协议,要调试设备上的trap发送功能,需要在windows端接收,,也支持Linux和unix,需要java环境,找来找去很辛苦终于找到这款软件,挺不错的
SNMP学习资料,对学SNMP的非常有帮助: 在不同操作系统中安装SNMP代理.mht SNMP的5种协议数据单元.mht SNMP基础简介.mht SNMP Informant How-To - OpenNMS.mht SnmpTrap工具的用法.txt
SNMP TRAP消息其实就是UDP报文,TRAP服务器就是UDP服务器(即接收方,UDP端口为162),发送TRAP消息的其实就是UDP客户端。 本demo包含TRAP接收的服务器和发送TRAP消息的UDP客户端两个部分,基于SnmpSharpNet做的,...
WINDOWS下SNMP TRAP接收调试软件,可显示TRAP信息列表和TRAP信息的编码内容,非常适合嵌入式SNMP协议开发者使用。
snmp trap 接收
SNMP Trap 接收工具,可以在windows 10 上运行,亲测可用,不需要安装dll,打开即可用。
C语言中net-snmp-trap发送代码,测试可行。
snmp Trap 监视网络设备接口的实现
使用snmp++在mfc下简单实现Trap接收,监视接口状态为DOWN或UP。
linux下基于netsnmp写的trap服务器,纯C代码,可解析出trap发送方的地址及trap消息内容,可直接编译和测试。编译方法为: gcc trap.c -lnetsnmp
NULL 博文链接:https://jyao.iteye.com/blog/357216
一个snmp trap server 的java 程序 可以得到从agent发送过来的trap