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

📄 walk.java

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

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 walk{
  
  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";
  private String erroresGenerales17 = "Total de requerimientos enviados:   ";
  private String erroresGenerales18 = "Total de respuestas recibidas:      ";
  private String erroresGenerales19 = "Tiempo total del Walk:              ";
  private String erroresGenerales20 = " milisegundos";
  
  public void cambiarIdiomaAMensajes(String s07,String s08,String s09,String s10,String s11,String s12,String s13,String s17,String s18,String s19,String s20){
  	erroresGenerales07 = s07;
    erroresGenerales08 = s08;
    erroresGenerales09 = s09;
    erroresGenerales10 = s10;
    erroresGenerales11 = s11;
    erroresGenerales12 = s12;
    erroresGenerales13 = s13;
    erroresGenerales17 = s17;
    erroresGenerales18 = s18;
    erroresGenerales19 = s19;
    erroresGenerales20 = s20;
  }

  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, int[] 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(erroresGenerales07);
		}
		
		//System.out.println();
		walkRealizado = walkRealizado.concat("\n");
		//System.out.println("Total requests sent:    "+requests);
		walkRealizado = walkRealizado.concat(erroresGenerales17+requests+"\n");
		//System.out.println("Total objects received: "+objects);
		walkRealizado = walkRealizado.concat(erroresGenerales18+objects+"\n");
		//System.out.println("Total walk time:        "+(System.currentTimeMillis()-startTime)+" milliseconds");	    
		walkRealizado = walkRealizado.concat(erroresGenerales19+(System.currentTimeMillis()-startTime)+erroresGenerales20+"\n");
	    
	  }catch (Exception e){e.printStackTrace();}
		
  }
	
  public void walkSNMPv2c(String ip, String puerto, String comunidad, int intentos, int tiempoEspera, int[] 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(erroresGenerales07);
		}
		//System.out.println();
		walkRealizado = walkRealizado.concat("\n");
		//System.out.println("Total requests sent:    "+requests);
		walkRealizado = walkRealizado.concat(erroresGenerales17+requests+"\n");
		//System.out.println("Total objects received: "+objects);
		walkRealizado = walkRealizado.concat(erroresGenerales18+objects+"\n");
		//System.out.println("Total walk time:        "+(System.currentTimeMillis()-startTime)+" milliseconds");	    
		walkRealizado = walkRealizado.concat(erroresGenerales19+(System.currentTimeMillis()-startTime)+erroresGenerales20+"\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, int[] requerimiento,long limite, OID metAut, OID metPriv){
    try{

⌨️ 快捷键说明

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