⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snmpv1.java

📁 很不错java的SNMP应用例子
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 *		SNMPv1 - Status: LISTO!!!
 */
 package versiones.SNMPv1;
 
import java.io.*;
import java.util.*;
 
import org.snmp4j.*;
import org.snmp4j.event.*;
import org.snmp4j.log.*;
import org.snmp4j.mp.*;
import org.snmp4j.security.*;
import org.snmp4j.smi.*;
import org.snmp4j.asn1.*;
import org.snmp4j.test.*;
import org.snmp4j.tools.console.*;
import org.snmp4j.transport.*;
import org.snmp4j.util.*;

public class SNMPv1{
	
  private Snmp snmp = null;
  private static boolean respondio;
  private static String dato;  

  public String getNextv1(String ip, String puerto, String comunidad, int intentos, int tiempoEspera, Vector requerimiento,String mensaje){
    
    String respuesta = "";
    try{
      	Address targetAddress = GenericAddress.parse("udp:"+ip+"/"+puerto);
	   	TransportMapping transport = new DefaultUdpTransportMapping();
		Snmp snmp = new Snmp(transport);
	
		CommandResponder trapPrinter = new CommandResponder() {
		  public synchronized void processPdu(CommandResponderEvent e) {
		    PDU command = e.getPDU();
		    if (command != null) {
		      System.out.println(command.toString());
		    }
		  }
		};
		snmp.addCommandResponder(trapPrinter);
		transport.listen();
	
	    CommunityTarget target = new CommunityTarget();
	    target.setCommunity(new OctetString(comunidad));
	    target.setAddress(targetAddress);
	    target.setRetries(intentos);
	    target.setTimeout(tiempoEspera);
	    target.setVersion(SnmpConstants.version1);
	    // creando el PDU
	    PDU pdu = new PDU();
	    for (int i=0;i<(requerimiento.size());i++){
      	  //System.out.println("dato"+i+": "+String.valueOf(requerimiento.get(i)));	
      	  pdu.add(new VariableBinding(new OID(String.valueOf(requerimiento.get(i)))));
    	}
	    pdu.setType(PDU.GETNEXT);
	        
	    // enviando el PDU
	    dato="";
	    ResponseEvent event = snmp.send(pdu, target);
	    PDU response = event.getResponse();
	    PDU request = event.getRequest();
	    if (response == null) {
	      //System.out.println("Request "+request+" timed out");
	      dato=mensaje;
	    }else{
	      //System.out.println("Received response "+response+" on request "+request);
	      dato=String.valueOf(response);
	      //Tratamiento de la respuesta
	      //System.out.println("respuesta: "+dato);
	      //System.out.println("index: "+respuesta.indexOf("VBS"));
		  int lugar =dato.indexOf("VBS");
		  int ini = dato.indexOf("[",lugar);
		  int fin = dato.indexOf("]",lugar);
		  ini++;
		  dato=dato.substring(ini,fin);
		  if (dato.indexOf(";")!=(-1)){
		    String tempPicador = "";
		    StringTokenizer Token = new StringTokenizer (dato,";");
			while(Token.hasMoreTokens()){
			  tempPicador=tempPicador.concat(String.valueOf(Token.nextToken())+"\n");
			}	
			dato=tempPicador;	
		  }else{
		    dato=dato.concat("\n");	
		  }
		  dato="\n ".concat(dato);
		  //Fin del tratamiento de la respuesta
	    }
  	}catch (Exception e){e.printStackTrace();}
    //System.out.println("El resultado fue: "+dato);
   	//System.out.println("Programa Terminado");
    
    respuesta = dato;
    
  	return respuesta;
  
  }

  public String getv1(String ip, String puerto, String comunidad, int intentos, int tiempoEspera, Vector requerimiento,String mensaje){
    
    String respuesta = "";
    try{
      	Address targetAddress = GenericAddress.parse("udp:"+ip+"/"+puerto);
	   	TransportMapping transport = new DefaultUdpTransportMapping();
		Snmp snmp = new Snmp(transport);
	
		CommandResponder trapPrinter = new CommandResponder() {
		  public synchronized void processPdu(CommandResponderEvent e) {
		    PDU command = e.getPDU();
		    if (command != null) {
		      System.out.println(command.toString());
		    }
		  }
		};
		snmp.addCommandResponder(trapPrinter);
		transport.listen();
	
	    CommunityTarget target = new CommunityTarget();
	    target.setCommunity(new OctetString(comunidad));
	    target.setAddress(targetAddress);
	    target.setRetries(intentos);
	    target.setTimeout(tiempoEspera);
	    target.setVersion(SnmpConstants.version1);
	    // creando el PDU
	    PDU pdu = new PDU();
	    for (int i=0;i<(requerimiento.size());i++){
      	  //System.out.println("dato"+i+": "+String.valueOf(requerimiento.get(i)));	
      	  pdu.add(new VariableBinding(new OID(String.valueOf(requerimiento.get(i)))));
    	}
	    pdu.setType(PDU.GET);
	        
	    // enviando el PDU
	    dato="";
	    ResponseEvent event = snmp.send(pdu, target);
	    PDU response = event.getResponse();
	    PDU request = event.getRequest();
	    if (response == null) {
	      //System.out.println("Request "+request+" timed out");
	      dato=mensaje;
	    }else {
	      //System.out.println("Received response "+response+" on request "+request);
	      dato=String.valueOf(response);
	      //Tratamiento de la respuesta
	      //System.out.println("respuesta: "+dato);
		  //System.out.println("index: "+respuesta.indexOf("VBS"));
		  int lugar =dato.indexOf("VBS");
		  int ini = dato.indexOf("[",lugar);
		  int fin = dato.indexOf("]",lugar);
		  ini++;
		  dato=dato.substring(ini,fin);
		  if (dato.indexOf(";")!=(-1)){
		    String tempPicador = "";
		    StringTokenizer Token = new StringTokenizer (dato,";");
			while(Token.hasMoreTokens()){
			  tempPicador=tempPicador.concat(String.valueOf(Token.nextToken())+"\n");
			}	
			dato=tempPicador;	
		  }else{
			dato=dato.concat("\n");	
		  }
		  dato="\n ".concat(dato);
		  //Fin del tratamiento de la respuesta
	    }
  	}catch (Exception e){e.printStackTrace();}
    
    //System.out.println("El resultado fue: "+dato);
   	//System.out.println("Programa Terminado");
    
    respuesta = dato;
        	
  	return respuesta;
  
  }

  public String setv1(String ip, String puerto, String comunidad, int intentos, int tiempoEspera, Vector requerimiento, Variable[] valor, String mensaje){
    
    String respuesta = "";
    try{
		Address targetAddress = GenericAddress.parse("udp:"+ip+"/"+puerto);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -