使用PySNMP获取陷阱发送者的IP

时间:2019-05-02 10:47:48

标签: pysnmp

我用pysnmp在python中构建了一个小型SNMP v3陷阱接收器。在我们的网络中,不同计算机上的snmp身份ID和用户/密码相同。因此,我需要snmp陷阱发件人的ip地址来识别发送方机器。 我如何获取地址,pysnmp中有任何功能/方法吗?

1 个答案:

答案 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