示例#1
0
  public void snmpWalk(String oidFrom) throws SnmpException {
    PDU request = new PDU();
    request.setType(PDU.GETNEXT);
    request.add(new VariableBinding(new OID(oidFrom)));
    request.setNonRepeaters(0);
    OID rootOID = request.get(0).getOid();
    PDU response = null;

    int objects = 0;
    int requests = 0;
    long startTime = System.currentTimeMillis();

    try {
      Snmp snmp = new Snmp(new DefaultUdpTransportMapping());
      snmp.listen();
      m_sessionDestroyed = false;
      do {
        requests++;
        ResponseEvent responseEvent = snmp.send(request, getTarget(getReadCommunity()));
        response = responseEvent.getResponse();
        if (response != null) {
          objects += response.size();
        }
      } while (!processWalk(response, request, rootOID) && !m_sessionDestroyed);

    } catch (SnmpException e) {
      throw e;
    } catch (Exception e) {
      e.printStackTrace();
      throw new SnmpException(e.getMessage());
    }
    if (m_snmpResponseHandler != null) {
      m_snmpResponseHandler.requestStats(requests, objects, System.currentTimeMillis() - startTime);
    }
  }
示例#2
0
 /** Executed after load to execute custom configurations */
 @Override
 protected void postLoadConfiguration() {
   try {
     if (device.getSpecification().getProtocolType().equals(ProtocolType.SNMP)) {
       deviceAddress = "udp:" + device.getAddress() + "/" + device.getPort();
       configuration = (SnmpProtocol) device.getProtocol();
       createSession();
     }
   } catch (Exception ex) {
     if (log.isErrorEnabled()) {
       log.error("Error creating SNMP Session: " + ex.getMessage());
     }
     if (log.isDebugEnabled()) {
       log.debug("Error creating SNMP Session: ", ex);
     }
   }
 }
示例#3
0
  void snmpSetValue(String oid, int syntax, String value) throws SnmpException {
    VariableBinding varbind = getVarBindForSetRequest(oid, syntax, value);

    PDU request = new PDU();
    request.setType(PDU.SET);
    request.add(varbind);
    PDU response = null;

    long startTime = System.currentTimeMillis();

    try {
      Snmp snmp = new Snmp(new DefaultUdpTransportMapping());
      snmp.listen();
      ResponseEvent responseEvent = snmp.send(request, getTarget(getWriteCommunity()));
      response = responseEvent.getResponse();
      // System.out.println(response);
    } catch (Exception e) {
      e.printStackTrace();
      throw new SnmpException(e.getMessage());
    }
  }