我使用snmp4j创建snmp陷阱接收器。我设法收到了PDU并进行了处理。我的机器有多个IP地址,因此需要目标IP地址。我可以考虑两种方式:
event.getTransportMapping().getListenAddress()
,但由于需要收听许多IP地址而获得了0.0.0.0/161。使用了event.getPeerAddress()
,但获得了发件人计算机的IP地址。非常感谢您提供的任何帮助。预先感谢。
答案 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的安全机制。