【问题标题】:SNMP4J How Mock a GETBULK Request?SNMP4J 如何模拟 GETBULK 请求?
【发布时间】:2018-01-10 16:51:46
【问题描述】:

我需要在 java 中使用 snmp4j 模拟 GETBULK 请求。但我不明白该怎么做。更具体地说,我不明白如何创建 TreeEvent 以创建响应列表以及如何回答客户。

我有一个这样的 snmpwalk

public void sendWalk(String community, String ipAddress, int port, String oidValue, int retries, long timeoutMillis) throws IOException {

    CommunityTarget comtarget = new CommunityTarget();
    comtarget.setCommunity(new OctetString(community));
    comtarget.setAddress(new UdpAddress(ipAddress + "/" + port));
    comtarget.setRetries(retries);
    comtarget.setTimeout(timeoutMillis);
    comtarget.setVersion(snmpVersion);


    OID oid = new OID(oidValue);

    TreeUtils treeUtils = new TreeUtils(snmp, new DefaultPDUFactory());
    List<TreeEvent> events = treeUtils.walk(comtarget, new OID[]{oid});
    if(events == null || events.size() == 0) {
        // TODO inserire in allarm manager ???
        log.warn(" No events . Request[Oid:"+oidValue+"]");
    }else{
        parseWalkResult(events);
    }

}

SNMP4J 上的 snmpwalk 是一个 GETBULK 请求,然后我想在 treeUtils.walk 方法中实现一个模拟以响应,并将 TreeEvents 列表作为模型的答案。

提前谢谢你。

【问题讨论】:

标签: java mocking snmp snmp4j


【解决方案1】:

您可以使用 SNMP4j 在路由器上执行 SNMPBULKWALK。 SNMP4j 提供以下 API 来同步检索给定根节点的整个子树。

类:TreeUtils.java 方法:getSubtree(targetV2, rootOID);

它还提供了另一种异步方法。

类:TreeUtils.java 方法:walk(targetV2, rootOIDs);

我有一个 github 项目,其中包含完整的工作代码。你可以克隆github repo试试看。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    相关资源
    最近更新 更多