从 SNMP4j 陷阱接收器获取目标 IP 地址



I create snmp trap receiver using snmp4j.我设法接收了 pdu 并对其进行了处理。我需要目标 IP 地址,因为我的机器有多个 IP 地址。我可以考虑两种方式:

  1. 在我的陷阱接收器中检索整个命令,即"snmpset -v 1 -c M xx.x.x.x 1.3.6.1.4.1.161.3.6.37.2.1.3.2 i 2",以便我可以通过删除其他字符串来获取 IP 地址。但我唯一能检索的只有变量、值和 pdu 类型。
  2. 使用方法检索目标 IP 地址。但找不到。我曾经使用过event.getTransportMapping().getListenAddress()但得到 0.0.0.0/161,因为我需要侦听许多 IP 地址。使用event.getPeerAddress()但获取发件人计算机的 IP 地址。

真的很感谢任何形式的帮助。提前谢谢。

解决方式:

UdpAddress udpHostAdress = (UdpAddress) cmdRespEvent.getTransportMapping().getListenAddress();
String ipAdd = udpHostAdress.getInetAddress().getHostAddress();
System.out.println("Target IP = " + ipAdd); 

如果您尝试处理陷阱接收器的安全性,那么您在这里使用 snmp v3 来处理这个问题是错误的。 v3 具有称为引擎 ID 的安全机制。

最新更新