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

📄 gettable.java

📁 很不错java的SNMP应用例子
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 *		GetTable - Status: LISTO!!!
 */
package versiones.GetTable;

import java.io.*;
import java.util.*;
import javax.swing.JTextArea;
 
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.*;

//////////////////////////////////////////
import net.percederberg.mibble.*;
import net.percederberg.mibble.value.*;
import mibblebrowser.MibNode;
import mibblebrowser.MibTreeBuilder;
//////////////////////////////////////////

public class getTable{

  private String erroresGenerales07 = "Error: El agente consultado no contiene datos para el OID especificado...\n";
  private String erroresGenerales08 = "Error: El usuario no se encuentra en el Agente...\n";
  private String erroresGenerales09 = "Error: La clave y/o el algoritmo de autenticaci髇 proporcionados son incorrectos...\n";
  private String erroresGenerales10 = "Error: La clave y/o el algoritmo de encriptaci髇 proporcionados son incorrectos...\n";
  private String erroresGenerales11 = "Error: Tiempo de espera excedido...\n";
  private String erroresGenerales12 = "Error: El OID especificado es mayor que el mayor OID de la MIB consultada...\n";
  private String erroresGenerales13 = "La variable recibida no es sucesora de la requerida:\n";
  
  public void cambiarIdiomaAMensajes(String s07,String s08,String s09,String s10,String s11,String s12,String s13){
  	erroresGenerales07 = s07;
    erroresGenerales08 = s08;
    erroresGenerales09 = s09;
    erroresGenerales10 = s10;
    erroresGenerales11 = s11;
    erroresGenerales12 = s12;
    erroresGenerales13 = s13;
  }
  
  private String walkRealizado = "";
  
  public void limpiarWalkRealizado(){
  	walkRealizado = "";
  }
	
  public String getWalkRealizado(){
    return walkRealizado; 	
  }

  public void walkSNMPv1(String ip, String puerto, String comunidad, int intentos, int tiempoEspera, OID requerimiento,long limite){
	  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();
	    pdu.add(new VariableBinding(new OID(requerimiento)));
	    pdu.setType(PDU.GETNEXT);
	    
	    // Para enviar y procesar el pdu para hacer el walk
	    OID rootOID = pdu.get(0).getOid();
		PDU response = null;
		int objects = 0;
		int requests = 0;
		long startTime = System.currentTimeMillis();

		if (limite==0){
			do {
				requests++;
				ResponseEvent responseEvent = snmp.send(pdu, target);
				response = responseEvent.getResponse();
				//System.out.println("response "+response);
				if (response != null) {
					objects += response.size();
				}
				//Aqui se haria el setText(walkRealizado);
				//System.out.println("Walking MIB - "+requests);
				//jta.setText("Walking MIB - "+requests);
			}
			while (!procesarWalk(response, pdu, rootOID));
		}else{
			do {
				requests++;
				ResponseEvent responseEvent = snmp.send(pdu, target);
				response = responseEvent.getResponse();
				//System.out.println("response "+response);
				if (response != null) {
					objects += response.size();
				}
				//Aqui se haria el setText(walkRealizado);
				//System.out.println("Walking MIB - "+requests);
				//jta.setText("Walking MIB - "+requests);
			}
			while ((!procesarWalk(response, pdu, rootOID))&&(requests<limite));
		}
		
		if(walkRealizado.equals("")){
		  //System.out.println("respuesta vacia");	
		  //walkRealizado = walkRealizado.concat("Error: El agente consultado no contiene datos para el OID especificado...\n");
		  walkRealizado = walkRealizado.concat(erroresGenerales07);
		}
		
		//System.out.println();
		//walkRealizado = walkRealizado.concat("\n");
		//System.out.println("Total requests sent:    "+requests);
		//walkRealizado = walkRealizado.concat("Total de requerimientos enviados:   "+requests+"\n");
		//System.out.println("Total objects received: "+objects);
		//walkRealizado = walkRealizado.concat("Total de respuestas recibidas:      "+objects+"\n");
		//System.out.println("Total walk time:        "+(System.currentTimeMillis()-startTime)+" milliseconds");	    
		//walkRealizado = walkRealizado.concat("Tiempo total del Walk:              "+(System.currentTimeMillis()-startTime)+" milisegundos"+"\n");
	    
	  }catch (Exception e){e.printStackTrace();}
		
  }



  public void walkSNMPv2c(String ip, String puerto, String comunidad, int intentos, int tiempoEspera, OID requerimiento,long limite){
	  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.version2c);
	    // creando el PDU
	    PDU pdu = new PDU();
	    pdu.add(new VariableBinding(new OID(requerimiento)));
	    pdu.setType(PDU.GETNEXT);
	    
	    // Para enviar y procesar el pdu para hacer el walk
	    OID rootOID = pdu.get(0).getOid();
		PDU response = null;
		int objects = 0;
		int requests = 0;
		long startTime = System.currentTimeMillis();

		if (limite==0){
			do {
				requests++;
				ResponseEvent responseEvent = snmp.send(pdu, target);
				response = responseEvent.getResponse();
				if (response != null) {
					objects += response.size();
				}
				//Aqui se haria el setText(walkRealizado);
				//System.out.println("Walking MIB Tree - "+requests);
			}
			while (!procesarWalk(response, pdu, rootOID));
		}else{
			do {
				requests++;
				ResponseEvent responseEvent = snmp.send(pdu, target);
				response = responseEvent.getResponse();
				if (response != null) {
					objects += response.size();
				}
				//Aqui se haria el setText(walkRealizado);
				//System.out.println("Walking MIB Tree - "+requests);
			}
			while ((!procesarWalk(response, pdu, rootOID))&&(requests<limite));
		}
		if(walkRealizado.equals("")){
		  //System.out.println("respuesta vacia");	
		  //walkRealizado = walkRealizado.concat("Error: El agente consultado no contiene datos para el OID especificado...\n");
		  walkRealizado = walkRealizado.concat(erroresGenerales07);
		}
		//System.out.println();
		//walkRealizado = walkRealizado.concat("\n");
		//System.out.println("Total requests sent:    "+requests);
		//walkRealizado = walkRealizado.concat("Total de requerimientos enviados:   "+requests+"\n");
		//System.out.println("Total objects received: "+objects);
		//walkRealizado = walkRealizado.concat("Total de respuestas recibidas:      "+objects+"\n");
		//System.out.println("Total walk time:        "+(System.currentTimeMillis()-startTime)+" milliseconds");	    
		//walkRealizado = walkRealizado.concat("Tiempo total del Walk:              "+(System.currentTimeMillis()-startTime)+" milisegundos"+"\n");
	    
	  }catch (Exception e){e.printStackTrace();}
		
  }

  public void walkSNMPv3(String ip, String puerto, String nombreUsuario, String claveAutenticacion, String claveEncriptacion, int SecurityLevel, int intentos, int tiempoEspera, OID requerimiento,long limite, OID metAut, OID metPriv){
    try{
	    Address targetAddress = GenericAddress.parse("udp:"+ip+"/"+puerto);
	    TransportMapping transport = new DefaultUdpTransportMapping();
	   	Snmp snmp = new Snmp(transport);
	   	USM usm = new USM(SecurityProtocols.getInstance(),new OctetString(MPv3.createLocalEngineID()), 0);
	   	SecurityModels.getInstance().addSecurityModel(usm);
	   	transport.listen();
	   		
	   	// a馻dir el usuario al USM
	   	//snmp.getUSM().addUser(new OctetString("default"),new UsmUser(new OctetString("default"),AuthMD5.ID,new OctetString("12345678"),PrivDES.ID,new OctetString("MD5DESUserPrivPassword")));
	   	//snmp.getUSM().addUser(new OctetString("seminario"),new UsmUser(new OctetString("seminario"),AuthMD5.ID,new OctetString("12345678"),PrivDES.ID,new OctetString("12345678")));
	   	//snmp.getUSM().addUser(new OctetString("seminario"),new UsmUser(new OctetString("seminario"),AuthMD5.ID,new OctetString("12345678"),null,null));
	   	if (claveEncriptacion==null){
	   	  snmp.getUSM().addUser(new OctetString(nombreUsuario),new UsmUser(new OctetString(nombreUsuario),metAut,new OctetString(claveAutenticacion),null,null));	
	   	}else{
	   	  snmp.getUSM().addUser(new OctetString(nombreUsuario),new UsmUser(new OctetString(nombreUsuario),metAut,new OctetString(claveAutenticacion),metPriv,new OctetString(claveEncriptacion)));
	   	}
	   	
	   	// establecer los parametros
		UserTarget target = new UserTarget();
		target.setAddress(targetAddress);
		target.setRetries(intentos);
		target.setTimeout(tiempoEspera);
		target.setVersion(SnmpConstants.version3);
		target.setSecurityLevel(SecurityLevel);
		//target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
		target.setSecurityName(new OctetString(nombreUsuario));
		
		// creando la PDU
		PDU pdu = new ScopedPDU();
		pdu.add(new VariableBinding(new OID(requerimiento)));
	    pdu.setType(PDU.GETNEXT);
	    		
		 // Para enviar y procesar el pdu para hacer el walk
	    OID rootOID = pdu.get(0).getOid();
		PDU response = null;
		int objects = 0;
		int requests = 0;
		long startTime = System.currentTimeMillis();

		if (limite==0){
			do {
				requests++;
				ResponseEvent responseEvent = snmp.send(pdu, target);
				response = responseEvent.getResponse();
				if (response != null) {
					objects += response.size();
				}
				//Aqui se haria el setText(walkRealizado);
				//System.out.println("Walking MIB Tree - "+requests);
			}
			while (!procesarWalk(response, pdu, rootOID));
		}else{
			do {
				requests++;
				ResponseEvent responseEvent = snmp.send(pdu, target);
				response = responseEvent.getResponse();
				if (response != null) {
					objects += response.size();
				}
				//Aqui se haria el setText(walkRealizado);
				//System.out.println("Walking MIB Tree - "+requests);
			}
			while ((!procesarWalk(response, pdu, rootOID))&&(requests<limite));
		}
		if(walkRealizado.equals("")){
		  //System.out.println("respuesta vacia");	
		  //walkRealizado = walkRealizado.concat("Error: El agente consultado no contiene datos para el OID especificado...\n");
		  walkRealizado = walkRealizado.concat(erroresGenerales07);
		}
		//System.out.println();
		//walkRealizado = walkRealizado.concat("\n");
		//System.out.println("Total requests sent:    "+requests);
		//walkRealizado = walkRealizado.concat("Total de requerimientos enviados:   "+requests+"\n");
		//System.out.println("Total objects received: "+objects);
		//walkRealizado = walkRealizado.concat("Total de respuestas recibidas:      "+objects+"\n");
		//System.out.println("Total walk time:        "+(System.currentTimeMillis()-startTime)+" milliseconds");	    
		//walkRealizado = walkRealizado.concat("Tiempo total del Walk:              "+(System.currentTimeMillis()-startTime)+" milisegundos"+"\n");
	    
	  }catch (Exception e){e.printStackTrace();}
   }



  private boolean procesarWalk(PDU response, PDU request, OID rootOID) {
  		//System.out.println("Error 0 - "+response);
		if ((response == null) || (response.getErrorStatus() != 0)|| (response.getType() == PDU.REPORT)){
			
			//System.out.println("dato: "+dato.indexOf("1.3.6.1.6.3.15.1.1.3.0"));
		    if (String.valueOf(response).indexOf("1.3.6.1.6.3.15.1.1.3.0")>=0){
		   	  //walkRealizado = walkRealizado.concat("Error: El usuario no se encuentra en el Agente...\n");
		   	  walkRealizado = walkRealizado.concat(erroresGenerales08);
		    }else{

⌨️ 快捷键说明

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