All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.itransformers.snmp2xml4j.snmptoolkit.Get Maven / Gradle / Ivy

/*
 * Get.java
 *
 * This work 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 of the License,
 * or (at your option) any later version.
 *
 * This work 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 this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 * USA
 *
 * Copyright (c) 2010-2016 iTransformers Labs. All rights reserved.
 */

package net.itransformers.snmp2xml4j.snmptoolkit;

import net.itransformers.snmp2xml4j.snmptoolkit.messagedispacher.MessageDispatcherAbstractFactory;
import net.itransformers.snmp2xml4j.snmptoolkit.transport.TransportMappingAbstractFactory;
import org.apache.log4j.Logger;
import org.snmp4j.*;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.log.Log4jLogFactory;
import org.snmp4j.log.LogFactory;
import org.snmp4j.mp.CounterSupport;
import org.snmp4j.mp.DefaultCounterListener;
import org.snmp4j.mp.MPv3;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.UdpAddress;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.AbstractTransportMapping;
import org.snmp4j.transport.DefaultUdpTransportMapping;

import java.io.IOException;
import java.util.Vector;

/**
 * 

Get class.

* * @author niau * @version $Id: $Id */ public class Get { static Logger logger = Logger.getLogger(Walk.class); String oid; String community; private UdpAddress localAddress; private TransportMappingAbstractFactory transportFactory; private MessageDispatcherAbstractFactory messageDispatcherFactory; CommunityTarget target = new CommunityTarget(); /** *

Constructor for Get.

* * @param oid a {@link java.lang.String} object. * @param target a {@link org.snmp4j.CommunityTarget} object. * @param transportFactory a {@link net.itransformers.snmp2xml4j.snmptoolkit.transport.TransportMappingAbstractFactory} object. * @param messageDispatcherAbstractFactory a {@link net.itransformers.snmp2xml4j.snmptoolkit.messagedispacher.MessageDispatcherAbstractFactory} object. */ public Get(String oid, CommunityTarget target,TransportMappingAbstractFactory transportFactory, MessageDispatcherAbstractFactory messageDispatcherAbstractFactory){ this.oid = oid; this.target = target; this.transportFactory = transportFactory; this.messageDispatcherFactory = messageDispatcherAbstractFactory; this.transportFactory = transportFactory; localAddress = new UdpAddress("0.0.0.0/0"); } /** *

Constructor for Get.

* * @param oid a {@link java.lang.String} object. * @param address a {@link java.lang.String} object. * @param version a int. * @param retries a int. * @param timeout a long. * @param community a {@link java.lang.String} object. * @param transportFactory a {@link net.itransformers.snmp2xml4j.snmptoolkit.transport.TransportMappingAbstractFactory} object. * @param messageDispatcherAbstractFactory a {@link net.itransformers.snmp2xml4j.snmptoolkit.messagedispacher.MessageDispatcherAbstractFactory} object. * @throws java.io.IOException if any. */ public Get(String oid, String address, int version, int retries, long timeout, String community, TransportMappingAbstractFactory transportFactory, MessageDispatcherAbstractFactory messageDispatcherAbstractFactory ) throws IOException { this.oid = oid; target = new CommunityTarget(); target.setAddress(new UdpAddress(address)); target.setRetries(retries); target.setTimeout(timeout); target.setVersion(version); target.setMaxSizeRequestPDU(65535); target.setCommunity(new OctetString(community)); this.community = community; this.transportFactory = transportFactory; this.messageDispatcherFactory = messageDispatcherAbstractFactory; localAddress = new UdpAddress("0.0.0.0/0"); } /** *

getSNMPValue.

* * @return a {@link java.lang.String} object. * @throws java.io.IOException if any. */ public String getSNMPValue() throws IOException { String result = ""; CounterSupport.getInstance().addCounterListener(new DefaultCounterListener()); VariableBinding vb = new VariableBinding(new OID(this.oid)); Vector vbs = new Vector(); vbs.add(vb); TransportMapping transport = transportFactory.createTransportMapping(localAddress); MessageDispatcher dispatcher = messageDispatcherFactory.createMessageDispatcherMapping(); Snmp snmp = new Snmp(dispatcher, transport); ((MPv3) snmp.getMessageProcessingModel(MPv3.ID)).setLocalEngineID(new OctetString(MPv3.createLocalEngineID()).getValue()); snmp.listen(); try { PDU request = new PDU(); request.setType(PDU.GET); for (int i = 0; i < vbs.size(); i++) { request.add((VariableBinding) vbs.get(i)); } long startTime = System.currentTimeMillis(); ResponseEvent responseEvent = snmp.send(request, target, transport); PDU response = null; if (responseEvent != null) { response = responseEvent.getResponse(); logger.debug("Received response after " + (System.currentTimeMillis() - startTime) + " millis"); } if (response == null){ logger.debug("SNMP response is null."); return null; } else { for (int i = 0; i < response.size(); i++) { VariableBinding vb1 = response.get(i); result = vb1.getVariable().toString(); } return result; } } finally { logger.debug("Error " + snmp.toString()); snmp.close(); } } /** *

getSNMPGetNextValue.

* * @return a {@link java.lang.String} object. * @throws java.io.IOException if any. */ public String getSNMPGetNextValue() throws IOException { String result = ""; CounterSupport.getInstance().addCounterListener(new DefaultCounterListener()); VariableBinding vb = new VariableBinding(new OID(this.oid)); // VariableBinding vb = new VariableBinding(new OID("1.3.6.1.2.1.31.1.1.1")); Vector vbs = new Vector(); vbs.add(vb); TransportMapping transport = transportFactory.createTransportMapping(localAddress); MessageDispatcher dispatcher = messageDispatcherFactory.createMessageDispatcherMapping(); // AbstractTransportMapping transport = new DefaultUdpTransportMapping(localAddress); Snmp snmp = new Snmp(dispatcher, transport); ((MPv3) snmp.getMessageProcessingModel(MPv3.ID)).setLocalEngineID(new OctetString(MPv3.createLocalEngineID()).getValue()); snmp.listen(); try { PDU request = new PDU(); request.setType(PDU.GETNEXT); for (int i = 0; i < vbs.size(); i++) { request.add((VariableBinding) vbs.get(i)); } long startTime = System.currentTimeMillis(); ResponseEvent responseEvent = snmp.send(request, target, transport); PDU response = null; if (responseEvent != null) { response = responseEvent.getResponse(); logger.debug("Received response after " + (System.currentTimeMillis() - startTime) + " millis"); } if (response == null){ logger.debug("SNMP response is null."); return null; } else { for (int i = 0; i < response.size(); i++) { VariableBinding vb1 = response.get(i); result = vb1.getVariable().toString(); } return result; } } finally { logger.debug("Error " + snmp.toString()); snmp.close(); } } /** *

main.

* * @param args an array of {@link java.lang.String} objects. * @throws java.io.IOException if any. */ public static void main(String[] args) throws IOException { LogFactory.setLogFactory(new Log4jLogFactory()); CounterSupport.getInstance().addCounterListener(new DefaultCounterListener()); VariableBinding vb = new VariableBinding(new OID(".1.3.6.1.4.1.9.10.86.1.1.1.1.5.1.2.16.32.1.4.112.31.11.10.189.0.0.0.0.0.0.0.0.96")); // VariableBinding vb = new VariableBinding(new OID("1.3.6.1.2.1.31.1.1.1")); Vector vbs = new Vector(); vbs.add(vb); AbstractTransportMapping transport = new DefaultUdpTransportMapping(); Snmp snmp = new Snmp(transport); ((MPv3) snmp.getMessageProcessingModel(MPv3.ID)).setLocalEngineID(new OctetString(MPv3.createLocalEngineID()).getValue()); CommunityTarget target = new CommunityTarget(); target.setCommunity(new OctetString("ciscoIp")); target.setVersion(SnmpConstants.version2c); target.setAddress(new UdpAddress("192.168.107.33/11161")); target.setRetries(1); target.setTimeout(1000); target.setMaxSizeRequestPDU(65535); snmp.listen(); PDU request = new PDU(); request.setType(PDU.GET); for (int i = 0; i < vbs.size(); i++) { request.add((VariableBinding) vbs.get(i)); } long startTime = System.currentTimeMillis(); ResponseEvent responseEvent = snmp.send(request, target); PDU response = null; if (responseEvent != null) { response = responseEvent.getResponse(); System.out.println("Received response after " + (System.currentTimeMillis() - startTime) + " millis"); } System.out.println("Response received with requestID=" + response.getRequestID() + ", errorIndex=" + response.getErrorIndex() + ", " + "errorStatus=" + response.getErrorStatusText() + "(" + response.getErrorStatus() + ")"); for (int i = 0; i < response.size(); i++) { VariableBinding vb1 = response.get(i); System.out.println(vb1.toString()); } snmp.close(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy