如何检查snmp4j是否可以使用snmp v3

时间:2014-10-30 13:05:58

标签: java snmp snmp4j

我必须检查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;
}

希望有人知道答案!

1 个答案:

答案 0 :(得分:2)

对于每个已知的IP地址,您可以发送SNMP v3发现消息(它支持GET / GET-BULK等),

http://sharpsnmplib.codeplex.com/wikipage?title=SNMP%20Device%20Discovery&referringTitle=Documentation

启用SNMP v3的实体必须根据标准对其进行响应。

因此对于snmp4j,您应该看看是否只有一种方法可以这样做。