我必须检查 snmp v3 在通过 snmp4j 管理的设备上是否可用。如果没有,我必须使用 snmp v2c。但如何通过 snmp4j 检查可用性?有完成方法或标准方法吗?
我想到了这样的事情:
private Target getTarget()
{
Address targetAddress = GenericAddress.parse(ip);
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString(community));
target.setAddress(targetAddress);
target.setRetries(2);
target.setTimeout(1000);
//Check here (with if)
if(snmpv3_is_available)
target.setVersion(SnmpConstants.version3);
else
target.setVersion(SnmpConstants.version2c);
return target;
}
希望有人知道答案!
对于每个已知的IP地址,您可以发送SNMP v3发现消息(支持GET/GET-BULK等),
https://docs.lextudio.com/sharpsnmplib/tutorials/device-discovery.html
启用 SNMP v3 的实体必须根据标准做出响应。
因此对于 snmp4j,您应该看看是否有一种方法可以做到这一点。