if-mib 上的 SNMP4J bulkwalk

SNMP4J bulkwalk on if-mib

我正在使用 snmp4j.jar。我想在 if-table 上执行 snmpwalk 以从所有行中获取 ifDescr。使用 netsnmp: snmpwalk -v2c -c**** -t 1 1.2.3.4 ifDescr 我可以得到...

IF-MIB::ifDescr.1 = STRING: ATM0

IF-MIB::ifDescr.2 = STRING: Ethernet0
....

我想用 snmp4j 做同样的事情。知道怎么做吗?我遵循了一些教程,但我不清楚该怎么做。

这是代码片段。希望对大家有帮助。

public Map<String, InterfaceInfoObject> getTableAsStrings(OID[] oids, String communityString) {
        TableUtils tUtils = new TableUtils(snmp, new DefaultPDUFactory());
        List<TableEvent> events = tUtils.getTable(getTarget(), oids, null, null);
        Map<String,InterfaceInfoObject> indexMap = new LinkedHashMap<String,InterfaceInfoObject>();
        for (TableEvent event : events) {
            if(event.isError()) { 
                throw new RuntimeException(event.getErrorMessage());
            }
            for(VariableBinding vb: event.getColumns()) {
                InterfaceInfoObject infterfaceInfo = new InterfaceInfoObject();
                String oid = vb.getOid().toString();
                String index = event.getIndex().toString();
                String colValue = vb.getVariable().toString();
                    if(indexMap.containsKey(index)){
                        getInferfaceObjectAndsetValues(indexMap, oid, index, colValue);
                    }else{
                        putInferfaceInfoObjInMap(indexMap, infterfaceInfo, oid, index,
                                colValue);
                    }
            }
        }
        return indexMap;