/** * * Copyright (c) 2009-2016 Freedomotic team http://freedomotic.com * * This file is part of Freedomotic * * This Program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation; either version 2, or (at your option) any later version. * * This Program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * Freedomotic; see the file COPYING. If not, see * <http://www.gnu.org/licenses/>. */ package com.freedomotic.plugins.devices.hwgste; import org.snmp4j.CommunityTarget; import org.snmp4j.PDU; import org.snmp4j.Snmp; import org.snmp4j.TransportMapping; import org.snmp4j.event.ResponseEvent; import org.snmp4j.mp.SnmpConstants; import org.snmp4j.smi.*; import org.snmp4j.transport.DefaultUdpTransportMapping; public class MYSNMP { public String SNMP_GET(HwgSte pluginRef, String ipAddress, int port, String strOID, String community) { String strResponse = ""; ResponseEvent response; Snmp snmp; try { OctetString community1 = new OctetString(community); String host = ipAddress + "/" + port; Address tHost = new UdpAddress(host); TransportMapping transport = new DefaultUdpTransportMapping(); transport.listen(); CommunityTarget comtarget = new CommunityTarget(); comtarget.setCommunity(community1); comtarget.setVersion(SnmpConstants.version1); comtarget.setAddress(tHost); comtarget.setRetries(2); comtarget.setTimeout(5000); PDU pdu = new PDU(); 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(); strResponse = pduresponse.getVariableBindings().firstElement().toString(); if (strResponse.contains("=")) { String strNewResponse[] = null; int len = strResponse.indexOf("="); strNewResponse = strResponse.split("="); //System.out.println("The SNMP response to the OID requested is : " + strNewResponse[1]); //FOR DEBUG strResponse = strNewResponse[1].trim(); } } } else { pluginRef.getLogger().error("TimeOut occured"); } snmp.close(); } catch (Exception e) { e.printStackTrace(); } return strResponse; } }