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

问题描述 投票:0回答:2

我使用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()但得到0.0.0.0/161因为我需要听很多ip地址。使用event.getPeerAddress()但获取发件人机器的IP地址。

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

java snmp net-snmp snmp4j snmp-trap
2个回答
1
投票

解决方法:

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.