我对pysnmp比较陌生。我目前的要求是支持snmp陷阱的陷阱源。我正在尝试理解如何使用pysnmp ntforg.NotificationOriginator构造来支持这一点。
我当前发送陷阱的代码片段如下:
varBinds = rfc1902.ObjectIdentity('SNMPv2-MIB', 'coldStart')
trapVarBinds = trapAgent.VarBinds(varBinds,'','')
trapPdu = rfc1902.NotificationType(
varBinds
).resolveWithMib(self.mibViewController)
SendTrap(trapAgent.TrapData(trapPdu,trapVarBinds))
def SendTrap(self,trapData):
for server in trapServer: #list of trapServer config info
data = trapServer[server]
print 'Trap server:%s'%(data,)
sendRequestHandle = ntforg.NotificationOriginator(snmpContext).sendVarBinds(
snmpEngine,
data.Name,
#None,'',
snmpContext.contextEngineId,'',
trapData.trapPdu
)任何关于如何在这里支持陷阱源的见解/建议都会非常有帮助。谢谢!
发布于 2017-06-21 10:31:53
参考Notification Originator
您可以像下面这样指定源IP和端口
from pysnmp.entity import config
from pysnmp.carrier.asynsock.dgram import udp
config.addSocketTransport(
snmpEngine,
udp.domainName,
udp.UdpSocketTransport().openClientMode(iface=('127.0.0.1', 1024))
)https://stackoverflow.com/questions/43921704
复制相似问题