snmp4j と Community String Indexing を使用して snmpwalk を実行するには?
public@123 (123 は vlanId) のようにコミュニティ文字列を変更することで、コミュニティ文字列のインデックス作成を行うことができます。
しかし、これはsnmpgetでのみ機能します!!??:
public ResponseEvent get(OID oids) throws IOException {
PDU pdu = new PDU();
pdu.add(new VariableBinding(oid));
pdu.setType(PDU.GETNEXT);
ResponseEvent event = snmp.send(pdu, getTarget(), null);
}
private Target getTarget() {
Address targetAddress = GenericAddress.parse(sw.getAddress());
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString(communityString));
target.setAddress(targetAddress);
target.setRetries(2);
target.setTimeout(1500);
target.setVersion(SnmpConstants.version2c);
return target;
}
しかし、このような snmpwalk を実行しようとすると、タイムアウトが発生します
public HashMap<String, String> snmpWalk(String strOid) throws IOException {
OID oid = new OID(strOid);
TreeUtils treeUtils = new TreeUtils(snmp, new DefaultPDUFactory());
HashMap<String, String> snmpResult = new HashMap<String, String>();
List<TreeEvent> events = treeUtils.getSubtree(getTarget(), oid);
// some more code ...
}