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

Get Target Ip Address From SNMP4j Trap Receiver

我使用 snmp4j 创建 snmp 陷阱接收器。我设法收到了 pdu 并进行了处理。我需要目标 IP 地址,因为我的机器有多个 IP 地址。我可以考虑两种方式:

  1. 在我的陷阱接收器中检索整个命令 "snmpset -v 1 -c M xx.xxx.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 地址。

非常感谢您提供的任何帮助。提前致谢。

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

解决者:

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