从 SNMP4j 陷阱接收器获取目标 IP 地址
Get Target Ip Address From SNMP4j Trap Receiver
我使用 snmp4j 创建 snmp 陷阱接收器。我设法收到了 pdu 并进行了处理。我需要目标 IP 地址,因为我的机器有多个 IP 地址。我可以考虑两种方式:
- 在我的陷阱接收器中检索整个命令 "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 类型。
- 使用方法检索目标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);
我使用 snmp4j 创建 snmp 陷阱接收器。我设法收到了 pdu 并进行了处理。我需要目标 IP 地址,因为我的机器有多个 IP 地址。我可以考虑两种方式:
- 在我的陷阱接收器中检索整个命令 "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 类型。
- 使用方法检索目标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);