Как проверить, доступен ли snmp v3 с помощью 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;
}

Надеюсь, кто-то знает ответ!


person WhiteBr0wnie_24    schedule 30.10.2014    source источник


Ответы (1)


Для каждого известного IP-адреса вы можете отправить сообщение обнаружения SNMP v3 (поддерживается GET/GET-BULK и т. д.),

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

Объекты с поддержкой SNMP v3 должны отвечать на это в соответствии со стандартом.

Итак, для snmp4j вы должны посмотреть, есть ли способ сделать это.

person Lex Li    schedule 02.11.2014