Java 如何检查snmp4j是否提供snmp v3

Java 如何检查snmp4j是否提供snmp v3,java,snmp,snmp4j,Java,Snmp,Snmp4j,我必须检查snmp v3是否在通过snmp4j管理的设备上可用。如果没有,我必须使用snmp v2c。但是如何通过snmp4j检查可用性?是否有一个完整的方法或标准的方法来做这件事 我想到了这样的事情: private Target getTarget() { Address targetAddress = GenericAddress.parse(ip); CommunityTarget target = new CommunityTarget(); target.se

我必须检查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等)

启用SNMP v3的实体必须根据标准对此作出响应

所以对于snmp4j,您应该看看是否有一种方法可以做到这一点