我用pysnmp在python中构建了一个小型SNMP v3陷阱接收器。在我们的网络中,不同计算机上的snmp身份ID和用户/密码相同。因此,我需要snmp陷阱发件人的ip地址来识别发送方机器。 我如何获取地址,pysnmp中有任何功能/方法吗?
答案 0 :(得分:0)
我认为在SNMP中通常不建议依赖对等地址,因为它们之间可能存在代理/ NAT /等。这可能可以解释为什么对等地址信息未在抽象SNMP API中公开。
要获取pysnmp中的对等地址,可以使用observer
功能:
# Callback function for receiving notifications
def cbFun(snmpEngine, stateReference, contextEngineId, contextName,
varBinds, cbCtx):
execContext = snmpEngine.observer.getExecutionContext(
'rfc3412.receiveMessage:request'
)
print('Notification from %s:%s' % execContext['transportAddress'])
这里是complete example。