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

时间:2019-01-24 14:12:36

标签: java snmp net-snmp snmp4j snmp-trap

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

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

非常感谢您提供的任何帮助。预先感谢。

2 个答案:

答案 0 :(得分:1)

解决者:

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

答案 1 :(得分:0)

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