关于使用pySNMP向公网IP的SNMP Receiver发送陷阱的技术咨询
使用pySNMP向公网SNMP Receiver发送陷阱
我这边正好有个监听公网IP的SNMP Receiver,于是用pySNMP写了这段trap.py代码来发送SNMP陷阱,你只需要把代码里的X.X.X.X替换成接收端的公网IP地址就行:
from pysnmp.hlapi import * from pysnmp import debug hostname = 'X.X.X.X' ##public IP address of receiver debug.setLogger(debug.Debug('msgproc')) next(sendNotification(SnmpEngine(), CommunityData('public'), UdpTransportTarget((hostname, 162)), ContextData(), 'trap', # sequence of custom OID-value pairs [ObjectType(ObjectIdentity('1.3.6.1.2.1.1.1.0'), OctetString('...'))]))
给你几个实用的小提醒:
- 一定要确认接收端的UDP 162端口已经开放公网访问权限,不然陷阱包很可能会被防火墙拦截
- 代码里用的是SNMPv2c的社区字符串
public,这个要和你的SNMP Receiver配置完全一致,不然接收端会直接拒绝处理 - 示例里的自定义OID是
1.3.6.1.2.1.1.1.0(对应系统描述),你可以根据实际业务需求替换成自己需要的OID和对应的值
内容的提问来源于stack exchange,提问作者mionnaise
相关产品推荐
相关产品推荐

