/** * 向管理进程发送Trap报文 * * @throws IOException */ public void sendPDU() throws IOException { // 设置 target CommunityTarget target = new CommunityTarget(); target.setAddress(targetAddress); // 通信不成功时的重试次数 target.setRetries(2); // 超时时间 target.setTimeout(1500); // snmp版本 target.setVersion(SnmpConstants.version2c); // 创建 PDU PDU pdu = new PDU(); pdu.add( new VariableBinding(new OID(".1.3.6.1.2.3377.10.1.1.1.1"), new OctetString("SnmpTrap"))); pdu.add(new VariableBinding(new OID(".1.3.6.1.2.3377.10.1.1.1.2"), new OctetString("JavaEE"))); pdu.add( new VariableBinding( new OID(".1.3.6.1.4.1.12612.220.11.1.3.0.1"), new OctetString("test_barco"))); pdu.setType(PDU.TRAP); // 向Agent发送PDU,并接收Response ResponseEvent respEvnt = snmp.send(pdu, target); // 解析Response if (respEvnt != null && respEvnt.getResponse() != null) { Vector<VariableBinding> recVBs = respEvnt.getResponse().getVariableBindings(); for (int i = 0; i < recVBs.size(); i++) { VariableBinding recVB = recVBs.elementAt(i); System.out.println(recVB.getOid() + " : " + recVB.getVariable()); } } }
private PDU CreateAndSetPdu() { PDU pdu = new PDU(); pdu.add(new VariableBinding(new OID(oidFromInput))); pdu.setType(PDU.GET); pdu.setRequestID(new Integer32(2)); return pdu; }
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); } }
private void requestAndVerifyResponse(int pduType, int version) throws Exception { PDU pdu = createPDU(version); for (AnticipatedRequest a : m_requestedVarbinds) { pdu.add(a.getRequestVarbind()); } pdu.setType(pduType); PDU response = sendRequest(pdu, version); assertNotNull("request timed out", response); System.err.println("Response is: " + response); assertTrue( "unexpected report pdu: " + ((VariableBinding) response.getVariableBindings().get(0)).getOid(), response.getType() != PDU.REPORT); assertEquals( "Unexpected number of varbinds returned.", m_requestedVarbinds.size(), response.getVariableBindings().size()); for (int i = 0; i < m_requestedVarbinds.size(); i++) { AnticipatedRequest a = m_requestedVarbinds.get(i); VariableBinding vb = response.get(i); a.verify(vb); } reset(); }
private ResponseEvent snmpGet(String targetOid) throws IOException { PDU pdu = new PDU(); pdu.add(new VariableBinding(new OID(targetOid))); pdu.setType(PDU.GET); // send the PDU return snmp.send(pdu, target); }
public void testTrap() throws Exception { File alarmsFile = new File("alarms.txt"); alarmsFile.delete(); PDU trap = new PDU(); trap.setType(PDU.TRAP); OID oid = new OID("1.2.3.4.5"); trap.add(new VariableBinding(SnmpConstants.snmpTrapOID, oid)); trap.add( new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(5000))); // put your uptime here trap.add(new VariableBinding(SnmpConstants.sysDescr, new OctetString("System Description"))); Variable alarmCode = new OctetString("777"); Variable agentId = new OctetString("AGENT_ID"); Variable alarmText = new OctetString("ALARM"); Variable agentAddress = new OctetString("127.0.0.1/161"); trap.add(new VariableBinding(new OID("1.2.3.4.5.1"), alarmCode)); trap.add(new VariableBinding(new OID("1.2.3.4.5.2"), agentId)); trap.add(new VariableBinding(new OID("1.2.3.4.5.3"), alarmText)); trap.add(new VariableBinding(new OID("1.2.3.4.5.4"), agentAddress)); server.readAndSaveTrap(trap); assertTrue(alarmsFile.exists()); String fileContent = SnmpNmsTest.readFileAsString("alarms.txt"); assertTrue(fileContent.indexOf("AGENT_ID") > -1); assertTrue(fileContent.indexOf("777") > -1); assertTrue(fileContent.indexOf("ALARM") > -1); }
/** * This method creates the requst and puts it in an PDU object. This object will be returnd and * used from Methods such as get,walk and getnext. * * @param type - the type of the response, possible are PDU.GET,PDU.GETNEXT, PDU.GETBULK * @param oids - the requested OIDs * @return - the request PDU * @see org.snmp4j.ScopedPDU */ public PDU createPDU(int type, OID[] oids) { // create the PDU PDU requestPDU = new ScopedPDU(); requestPDU.setType(type); // put the oid you want to get for (OID oid : oids) { requestPDU.add(new VariableBinding(oid)); } return requestPDU; }
/** * This method is capable of handling multiple OIDs * * @param oids * @return * @throws IOException */ public ResponseEvent get(OID... oids) throws IOException { PDU pdu = new PDU(); for (OID oid : oids) { pdu.add(new VariableBinding(oid)); } pdu.setType(PDU.GET); ResponseEvent event = snmp.send(pdu, getTarget(), null); if (event != null) { return event; } throw new RuntimeException("GET timed out"); }
public void updateByValue( URI url, List<Variable> values, SnmpUriCallback callback, Object userObject) throws UnknownHostException { Request request = createSnmpRequest(url); PDU pdu = request.getPdu(); pdu.setType(PDU.SET); OID[] oids = request.getOIDs(); for (int i = 0; i < oids.length && i < values.size(); i++) { pdu.add(new VariableBinding(oids[i], values.get(i))); } sendSnmpRequest(request, pdu, url, callback, userObject); }
public void sendByBinding( URI url, List<VariableBinding> values, int pduType, SnmpUriCallback callback, Object userObject) throws UnknownHostException { Request request = createSnmpRequest(url); PDU pdu = request.getPdu(); pdu.setType(pduType); for (VariableBinding vb : values) { pdu.add(vb); } sendSnmpRequest(request, pdu, url, callback, userObject); }
private PDU createPDU(SnmpTrapInfo snmpTrapInfo) { PDU trap = new PDU(); trap.setType(PDU.TRAP); int alertType = snmpTrapInfo.getAlertType() + 1; if (alertType > 0) { trap.add( new VariableBinding(SnmpConstants.sysUpTime, new OctetString(new Date().toString()))); trap.add( new VariableBinding( SnmpConstants.snmpTrapOID, getOID(CsSnmpConstants.TRAPS_PREFIX + alertType))); trap.add( new VariableBinding( getOID(CsSnmpConstants.DATA_CENTER_ID), new UnsignedInteger32(snmpTrapInfo.getDataCenterId()))); trap.add( new VariableBinding( getOID(CsSnmpConstants.POD_ID), new UnsignedInteger32(snmpTrapInfo.getPodId()))); trap.add( new VariableBinding( getOID(CsSnmpConstants.CLUSTER_ID), new UnsignedInteger32(snmpTrapInfo.getClusterId()))); if (snmpTrapInfo.getMessage() != null) { trap.add( new VariableBinding( getOID(CsSnmpConstants.MESSAGE), new OctetString(snmpTrapInfo.getMessage()))); } else { throw new CloudRuntimeException(" What is the use of alert without message "); } if (snmpTrapInfo.getGenerationTime() != null) { trap.add( new VariableBinding( getOID(CsSnmpConstants.GENERATION_TIME), new OctetString(snmpTrapInfo.getGenerationTime().toString()))); } else { trap.add(new VariableBinding(getOID(CsSnmpConstants.GENERATION_TIME))); } } else { throw new CloudRuntimeException(" Invalid alert Type "); } return trap; }
public String snmpGet(String strAddress, String community, String strOID) // SNMPget { String str = ""; try { OctetString community1 = new OctetString(community); strAddress = strAddress + "/" + 161; // Direccion + Puerto SNMP Address targetaddress = new UdpAddress(strAddress); // direccion con puerto TransportMapping transport = new DefaultUdpTransportMapping(); transport.listen(); /* * Este metodo regresa un Target, que contiene informacion acerca de los * datos y como deben ser mostrados y sus rangos. */ CommunityTarget comtarget = new CommunityTarget(); comtarget.setCommunity(community1); comtarget.setVersion(SnmpConstants.version1); comtarget.setAddress(targetaddress); comtarget.setRetries(2); comtarget.setTimeout(5000); PDU pdu = new PDU(); ResponseEvent response; Snmp snmp; pdu.add(new VariableBinding(new OID(strOID))); pdu.setType(PDU.GET); snmp = new Snmp(transport); response = snmp.get(pdu, comtarget); if (response != null) { if (response.getResponse().getErrorStatusText().equalsIgnoreCase("Success")) { PDU pduresponse = response.getResponse(); str = pduresponse.getVariableBindings().firstElement().toString(); if (str.contains("=")) { int len = str.indexOf("="); str = str.substring(len + 1, str.length()); } } } else { System.out.println("Feeling like a TimeOut occured "); } // En caso de que ocurra un Time out snmp.close(); // cierra conexión } catch (Exception e) { } System.out.println("Response= " + str); // en caso de ocurrio error lo arroja return str; }
/** * @param ip * @param community */ public static void snmpGetList(String ip, String community, List<String> oidList) { CommunityTarget target = SnmpUtil.createDefault(ip, community); Snmp snmp = null; try { PDU pdu = new PDU(); for (String oid : oidList) { pdu.add(new VariableBinding(new OID(oid))); } DefaultUdpTransportMapping transport = new DefaultUdpTransportMapping(); transport.listen(); snmp = new Snmp(transport); System.out.println("------->发送消息<-------"); pdu.setType(PDU.GET); ResponseEvent respEvent = snmp.send(pdu, target); System.out.println("PeerAddress:" + respEvent.getPeerAddress()); PDU response = respEvent.getResponse(); if (response == null) { System.out.println("response is null, request time out"); } else { System.out.println("response pdu size is " + response.size()); for (int i = 0; i < response.size(); i++) { VariableBinding vb = response.get(i); System.out.println(vb.getOid() + " = " + vb.getVariable()); } } System.out.println("SNMP GET List OID value finished !"); } catch (Exception e) { e.printStackTrace(); System.out.println("SNMP GetList Exception:" + e); } finally { if (snmp != null) { try { snmp.close(); } catch (IOException ex1) { snmp = null; } } } }
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()); } }
/** * This method returns a Target, which contains information about where the data should be fetched * and how. * * @return * @throws IOException */ private Target getTarget() throws IOException { Address targetAddress = GenericAddress.parse(address); // System.out.println(targetAddress.isValid()); // CommunityTarget target = new CommunityTarget(); // target.setCommunity(new OctetString("public")); // target.setAddress(targetAddress); // System.out.println(target.getAddress()); // target.setRetries(2); // target.setTimeout(5500); // target.setVersion(SnmpConstants.version2c); // System.out.println(target.toString()); // return target; CommunityTarget target = new CommunityTarget(); target.setCommunity(new OctetString(COMMUNITYKEY)); target.setAddress(targetAddress); target.setRetries(2); target.setTimeout(100); target.setVersion(SnmpConstants.version1); // creating PDU PDU pdu = new PDU(); pdu.add(new VariableBinding(new OID(new int[] {1, 3, 6, 1, 2, 1, 1, 1}))); pdu.add(new VariableBinding(new OID(new int[] {1, 3, 6, 1, 2, 1, 1, 2}))); pdu.setType(PDU.GETNEXT); // sending request ResponseListener listener = new ResponseListener() { public void onResponse(ResponseEvent event) { // Always cancel async request when response has been received // otherwise a memory leak is created! Not canceling a request // immediately can be useful when sending a request to a broadcast // address. ((Snmp) event.getSource()).cancel(event.getRequest(), this); // System.out.println("Received response PDU is: "+event.getResponse()); } }; snmp.send(pdu, target, null, listener); return target; }
/** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { TransportMapping transport = new DefaultUdpTransportMapping(); Snmp snmp = new Snmp(transport); MessageDispatcherImpl dispatcher = new MessageDispatcherImpl(); transport.listen(); Address targetAddress = new UdpAddress("202.144.0.178/161"); // setting up target CommunityTarget target = new CommunityTarget(); target.setCommunity(new OctetString("public")); target.setAddress(targetAddress); target.setRetries(2); target.setTimeout(1500); target.setVersion(SnmpConstants.version1); // creating PDU PDU pdu = new PDU(); pdu.add(new VariableBinding(new OID(new int[] {1, 3, 6, 1, 2, 1, 1, 1}))); pdu.add(new VariableBinding(new OID(new int[] {1, 3, 6, 1, 2, 1, 1, 2}))); pdu.setType(PDU.GETNEXT); // sending request ResponseListener listener = new ResponseListener() { public void onResponse(ResponseEvent event) { // Always cancel async request when response has been received // otherwise a memory leak is created! Not canceling a request // immediately can be useful when sending a request to a // broadcast // address. ((Snmp) event.getSource()).cancel(event.getRequest(), this); System.out.println("Received response PDU is: " + event.getResponse()); } }; snmp.set(pdu, target, null, listener); // snmp.sendPDU(pdu, target, null, listener); }
public static List<String> get( Snmp snmp, String address, String community, int version, int retry, String[] oids) { List<String> list = new ArrayList<String>(); Address targetAddress = GenericAddress.parse(address); CommunityTarget target = new CommunityTarget(); target.setCommunity(new OctetString(community)); target.setAddress(targetAddress); target.setVersion(version); target.setTimeout(1000); target.setRetries(retry); PDU pdu = new PDU(); pdu.setType(PDU.GET); for (String oid : oids) { pdu.add(new VariableBinding(new OID(oid))); } try { ResponseEvent response = snmp.send(pdu, target); PDU resposePdu = response.getResponse(); if (resposePdu != null) { Vector<?> v = resposePdu.getVariableBindings(); for (Object o : v) { if (o instanceof VariableBinding) { VariableBinding vb = (VariableBinding) o; String r = vb.getVariable().toString(); list.add(r); } } } } catch (IOException e) { e.printStackTrace(); } return list; }
public void snmpSet(String strAddress, String community, String strOID, int Value) { strAddress = strAddress + "/" + 161; // Direccion + Puerto SNMP Address targetAddress = GenericAddress.parse(strAddress); // direccion con puerto Snmp snmp; try { TransportMapping transport = new DefaultUdpTransportMapping(); snmp = new Snmp(transport); transport.listen(); /* * Este metodo regresa un Target, que contiene informacion acerca de los * datos y como deben ser mostrados y sus rangos. */ CommunityTarget target = new CommunityTarget(); // representa las propiedades del target SNMP basado en proceso de // modelos target.setCommunity(new OctetString(community)); target.setAddress(targetAddress); target.setRetries(2); target.setTimeout(5000); target.setVersion(SnmpConstants.version1); PDU pdu = new PDU(); pdu.add(new VariableBinding(new OID(strOID), new Integer32(Value))); pdu.setType(PDU.SET); ResponseListener listener = new ResponseListener() { @Override // public method declared in Object public void onResponse(ResponseEvent event) { ((Snmp) event.getSource()).cancel(event.getRequest(), this); System.out.println("Set Status is:" + event.getResponse().getErrorStatusText()); // Impresion del status de la respuesta } }; snmp.send(pdu, target, null, listener); // envio de parametros snmp.close(); // cierra socket snmp } catch (Exception e) { } }
private static Vector<VariableBinding> getTableRow( Snmp snmp, CommunityTarget target, String[] colOids, String firstOid) { PDU pdu = new PDU(); pdu.setType(PDU.GETNEXT); for (String oid : colOids) { pdu.add(new VariableBinding(new OID(oid))); } Vector<VariableBinding> v = null; try { ResponseEvent response = snmp.send(pdu, target); PDU resposePdu = response.getResponse(); if (resposePdu != null) { v = resposePdu.getVariableBindings(); if (v != null && v.size() > 0) { VariableBinding vb = v.get(0); String oid = vb.getOid().toString(); if (!oid.startsWith(firstOid)) return null; } } } catch (IOException e) { e.printStackTrace(); } return v; }
public static List<String[]> getTable( Snmp snmp, String address, String community, int version, int retry, String[] colOids) { List<String[]> list = new ArrayList<String[]>(); Address targetAddress = GenericAddress.parse(address); CommunityTarget target = new CommunityTarget(); target.setCommunity(new OctetString(community)); target.setAddress(targetAddress); target.setVersion(version); target.setTimeout(1000); target.setRetries(retry); PDU pdu = new PDU(); pdu.setType(PDU.GETNEXT); for (String oid : colOids) { pdu.add(new VariableBinding(new OID(oid))); } int i = 0; String firstOid = colOids[0]; Vector<VariableBinding> row = null; do { row = getTableRow(snmp, target, colOids, firstOid); if (row != null && colOids.length == row.size()) { String[] ss = new String[colOids.length]; for (int n = 0; n < colOids.length; n++) { VariableBinding vb = row.get(n); String r = vb.getVariable().toString(); colOids[n] = vb.getOid().toString(); ss[n] = r; } list.add(ss); } } while (i++ < 200 && row != null); return list; }
/** {@inheritDoc} */ public PDU processPdu(PDU pdu) throws SnmpToolkitException { Log log = LogFactory.getLog(this.getClass()); // 応答用のPDUを生成する PDU retPdu = new PDU(); retPdu.setType(PDU.RESPONSE); // 要求のリクエストIDを取得し、応答PDUにセットする Integer32 requestID = pdu.getRequestID(); retPdu.setRequestID(requestID); // SNMP4J用の型変換オブジェクト SnmpVariableHelper varHelper = new Snmp4jVariableHelper(); // AgentServiceからAgentを取得する Agent agent = this.agentService_.getAgent(); // 要求PDUのVarbindを走査する int varCount = 0; List<?> reqVarbinds = pdu.getVariableBindings(); for (Object reqVarbindObj : reqVarbinds) { varCount++; // 要求されているOIDを取得する VariableBinding reqVarbind = (VariableBinding) reqVarbindObj; OID oid = reqVarbind.getOid(); // GETNEXTでない場合は、指定されたOIDそのものを取得しようとする // GETNEXTの場合は、指定されたOID配下で最も近いオブジェクトを探す boolean exact = (pdu.getType() != PDU.GETNEXT); SnmpVarbind foundVarbind = agent.findObject(oid.toString(), exact); if (foundVarbind == null) { // Varbindが見つからなかった場合はnoSuchNameを返す log.warn("varbind is not found. oid=" + oid.toString()); retPdu.setErrorStatus(SnmpConstants.SNMP_ERROR_NO_SUCH_NAME); retPdu.setErrorIndex(varCount); Variable retObject = new Null(); VariableBinding retVarbind = new VariableBinding(oid, retObject); retPdu.add(retVarbind); break; } // READ-WRITEでなければエラー応答を返す String accessibility = foundVarbind.getAccessibility(); if (accessibility.equals(SnmpVarbind.ACCESSIBILITY_NOT_ACCESSIBLE) == true) { log.warn("varbind is not accessible. accessibility=" + accessibility); retPdu.setErrorStatus(SnmpConstants.SNMP_ERROR_NO_ACCESS); retPdu.setErrorIndex(varCount); Variable retObject = new Null(); VariableBinding retVarbind = new VariableBinding(oid, retObject); retPdu.add(retVarbind); break; } try { // 正常の応答を返す retPdu.setErrorStatus(SnmpConstants.SNMP_ERROR_SUCCESS); retPdu.setErrorIndex(0); log.debug("varbind is found: " + foundVarbind.toString()); String typeStr = foundVarbind.getType(); Object retValueObj = foundVarbind.getValue(); Variable retObject = (Variable) varHelper.createAsnObject(retValueObj, typeStr); OID retOID = new OID(foundVarbind.getOid()); VariableBinding retVarbind = new VariableBinding(retOID, retObject); retPdu.add(retVarbind); } catch (Exception exception) { log.warn("exception occured", exception); // 未知のエラーを示す応答PDUを作成する retPdu.setErrorStatus(SnmpConstants.SNMP_ERROR_GENERAL_ERROR); retPdu.setErrorIndex(varCount); if (foundVarbind != null) { OID retOID = new OID(foundVarbind.getOid()); Variable retObject = new Null(); VariableBinding retVarbind = new VariableBinding(retOID, retObject); retPdu.add(retVarbind); } } } return retPdu; }
private void parseVariableBinding(Element variable, PDU pdu) throws Exception { String name = variable.attributeValue("name"); String value = variable.attributeValue("value"); String type = variable.attributeValue("type"); String mibName = null; if (name == null) { throw new Exception("ERROR : The variablebinding name is required to send the variable."); } VariableBinding varBind = null; boolean found = false; if (name.startsWith( "1.")) // if name begin with digit 1 follow by a dot, it is an oid, else we consider it's a // variable mib { varBind = new VariableBinding(new OID(name)); found = true; } else { if (name.contains(".")) { mibName = name.substring(0, name.indexOf('.')); name = name.substring(name.indexOf('.') + 1); } Mib[] mibs = mibLoader.getAllMibs(); for (int i = 0; (i < mibs.length) && !found; i++) { Collection symbols = mibs[i].getAllSymbols(); for (Object symb : symbols) { if (symb instanceof MibValueSymbol) { if (((MibValueSymbol) symb).getName().equalsIgnoreCase(name)) { if ((mibName == null) || ((MibValueSymbol) symb).getMib().getName().equalsIgnoreCase(mibName)) { varBind = new VariableBinding(new OID(((MibValueSymbol) symb).getValue().toString())); if (type == null) { type = findType((MibValueSymbol) symb); } found = true; break; } } } else if (symb instanceof MibTypeSymbol) { // System.out.println("mibTypeSymbol " + // ((MibTypeSymbol)symb).getName() + " for mib name " + mibs[i].getName()); } else if (symb instanceof MibMacroSymbol) { // System.out.println("mibMacroSymbol " + // ((MibMacroSymbol)symb).getName() + " for mib name " + mibs[i].getName()); } else { throw new Exception( "ERROR : Unknown class for variablebinding \"" + symb.getClass() + "\""); } } } } if (!found) { throw new Exception( "ERROR : Unknown varbinding name \"" + name + "\" not found in the MIB files."); } if (type == null) // /if type not set, search in mib { Mib[] mibs = mibLoader.getAllMibs(); for (int i = 0; (i < mibs.length); i++) { MibValueSymbol symbol = mibs[i].getSymbolByValue(varBind.getOid().toString()); if (symbol != null) { // set type in function of information in variable type = findType(symbol); break; } } } if ((value != null) && (value.length() > 0)) { if (type == null) { throw new Exception( "ERROR : The variablebinding type is required : it is not defined nor in XML script nor in MIB files."); } if (type.equalsIgnoreCase("counter64")) { varBind.setVariable(new Counter64(Long.parseLong(value))); } else if (type.equalsIgnoreCase("integer32")) { varBind.setVariable(new Integer32(Integer.parseInt(value))); } else if (type.equalsIgnoreCase("octetString") || type.equalsIgnoreCase("octet string")) { varBind.setVariable(new OctetString(value)); } else if (type.equalsIgnoreCase("opaque")) { varBind.setVariable(new Opaque(value.getBytes())); } else if (type.equalsIgnoreCase("oid")) { varBind.setVariable(new OID(value)); } else if (type.equalsIgnoreCase("genericAddress")) { GenericAddress add = new GenericAddress(); add.setValue(value); varBind.setVariable(add); } else if (type.equalsIgnoreCase("ipAddress")) { varBind.setVariable(new IpAddress(value)); } else if (type.equalsIgnoreCase("unsignedInteger32")) { varBind.setVariable(new UnsignedInteger32(Integer.parseInt(value))); } else if (type.equalsIgnoreCase("counter32")) { varBind.setVariable(new Counter32(Long.parseLong(value))); } else if (type.equalsIgnoreCase("gauge32")) { varBind.setVariable(new Gauge32(Long.parseLong(value))); } else if (type.equalsIgnoreCase("timeTicks")) { varBind.setVariable(new TimeTicks(Long.parseLong(value))); } else { throw new Exception( "Error : Unknown variablebinding type \"" + type + "\" : not understood by the application"); } } pdu.add(varBind); }