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;
我正在使用 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;