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

📄 enviartrapinform.java

📁 很不错java的SNMP应用例子
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	    respondio=true;
	    dato="";
	    ResponseListener listener = new ResponseListener() {
	    public void onResponse(ResponseEvent event) {
	        PDU response = event.getResponse();
	        PDU request = event.getRequest();
	        if (response == null) {
	            //System.out.println("Request "+request+" timed out");
	            dato="Tiempo de espera excedido...";
	        }
	        else {
	            System.out.println("Received response "+response+" on request "+request);
	            dato=String.valueOf(response);
	            //Tratamiento de la respuesta
	            System.out.println("respuesta: "+dato);
	    	}
	    	respondio=false;
		}};
		snmp.sendPDU(pdu, target, null, listener);
		//System.out.println("envie el informv2c...");
	    snmp.close();
    
    }catch (Exception e){e.printStackTrace();}
        	
  	return respuesta;
  
  }
  
  
  public String trapv3(String ip, String puerto, String nombreUsuario, String claveAutenticacion, String claveEncriptacion, int SecurityLevel, int intentos, int tiempoEspera, String requerimiento,String vbsOID){
    String respuesta = "";
    
    try{
      	Address targetAddress = GenericAddress.parse("udp:"+ip+"/"+puerto);
	    TransportMapping transport = new DefaultUdpTransportMapping();
	   	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),AuthMD5.ID,new OctetString(claveAutenticacion),null,null));	
	   	}else{
	   	  snmp.getUSM().addUser(new OctetString(nombreUsuario),new UsmUser(new OctetString(nombreUsuario),AuthMD5.ID,new OctetString(claveAutenticacion),PrivDES.ID,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 el PDU
	    PDU pdu = new ScopedPDU();
	    Vector vbs = new Vector();
	    if (
	    	(vbsOID.equals(String.valueOf(SnmpConstants.coldStart)))||
  			(vbsOID.equals(String.valueOf(SnmpConstants.warmStart)))||
  			(vbsOID.equals(String.valueOf(SnmpConstants.linkDown)))||
  			(vbsOID.equals(String.valueOf(SnmpConstants.linkUp)))||
  			(vbsOID.equals(String.valueOf(SnmpConstants.authenticationFailure)))
  		   ){
	    	if ((vbs.size() == 0) ||((vbs.size() > 1) &&(!((VariableBinding) vbs.get(0)).getOid().equals(SnmpConstants.sysUpTime)))) {
					vbs.add(0, new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(0)));
				}
			if ((vbs.size() == 1) || ((vbs.size() > 2) &&(!((VariableBinding) vbs.get(1)).getOid().equals(SnmpConstants.snmpTrapOID)))) {
					vbs.add(1, new VariableBinding(SnmpConstants.snmpTrapOID, new OID(vbsOID)));
				}
	    }else{
		    vbs = getVariableBinding(requerimiento);
		    if ((vbs.size() == 0) ||((vbs.size() > 1) &&(!((VariableBinding) vbs.get(0)).getOid().equals(SnmpConstants.sysUpTime)))) {
					vbs.add(0, new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(0)));
				}
			if ((vbs.size() == 1) || ((vbs.size() > 2) &&(!((VariableBinding) vbs.get(1)).getOid().equals(SnmpConstants.snmpTrapOID)))) {
					vbs.add(1, new VariableBinding(SnmpConstants.snmpTrapOID, new OID(vbsOID)));
				}
		}
		
		for (int i=0; i<vbs.size(); i++) {
			pdu.add((VariableBinding)vbs.get(i));
		}
	    pdu.setType(PDU.TRAP);
    
	    // enviando el PDU
	    respondio=true;
	    dato="";
	    ResponseListener listener = new ResponseListener() {
	    public void onResponse(ResponseEvent event) {
	        PDU response = event.getResponse();
	        PDU request = event.getRequest();
	        if (response == null) {
	            //System.out.println("Request "+request+" timed out");
	            dato="Tiempo de espera excedido...";
	        }
	        else {
	            System.out.println("Received response "+response+" on request "+request);
	            dato=String.valueOf(response);
	            //Tratamiento de la respuesta
	            System.out.println("respuesta: "+dato);
	    	}
	    	respondio=false;
		}};
		snmp.sendPDU(pdu, target, null, listener);
		//System.out.println("envie el trapv3...");
	    snmp.close();
    
    }catch (Exception e){e.printStackTrace();}
        	
  	return respuesta;
  
  }
  
  public String informv3(String ip, String puerto, String nombreUsuario, String claveAutenticacion, String claveEncriptacion, int SecurityLevel, int intentos, int tiempoEspera, String requerimiento,String vbsOID){
  	/*
  	System.out.println("ip "+ip); 
  	System.out.println("puerto "+puerto);
  	System.out.println("nombreUsuario "+nombreUsuario);
  	System.out.println("claveAutenticacion "+claveAutenticacion); 
  	System.out.println("claveEncriptacion "+claveEncriptacion);
  	System.out.println("SecurityLevel "+SecurityLevel); 
  	System.out.println("intentos "+intentos); 
  	System.out.println("tiempoEspera "+tiempoEspera);
  	System.out.println("requerimiento "+requerimiento);
  	System.out.println("vbsOID "+vbsOID);
  	*/
    String respuesta = "";
    
    try{
      	Address targetAddress = GenericAddress.parse("udp:"+ip+"/"+puerto);
	    TransportMapping transport = new DefaultUdpTransportMapping();
	   	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),AuthMD5.ID,new OctetString(claveAutenticacion),null,null));	
	   	}else{
	   	  snmp.getUSM().addUser(new OctetString(nombreUsuario),new UsmUser(new OctetString(nombreUsuario),AuthMD5.ID,new OctetString(claveAutenticacion),PrivDES.ID,new OctetString(claveEncriptacion)));
	   	}
	   	
	   	// establecer los parametros
		UserTarget target = new UserTarget();
		target.setAddress(targetAddress);
		target.setRetries(intentos);
		//truco, quitarlo luego
		target.setRetries(0);
		target.setTimeout(tiempoEspera);
		target.setVersion(SnmpConstants.version3);
		target.setSecurityLevel(SecurityLevel);
		//target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
		target.setSecurityName(new OctetString(nombreUsuario));
	    // creando el PDU
	    PDU pdu = new ScopedPDU();
	    Vector vbs = new Vector();
	    vbs = getVariableBinding(requerimiento);
	    if ((vbs.size() == 0) ||((vbs.size() > 1) &&(!((VariableBinding) vbs.get(0)).getOid().equals(SnmpConstants.sysUpTime)))) {
				vbs.add(0, new VariableBinding(SnmpConstants.sysUpTime, new TimeTicks(0)));
			}
		if ((vbs.size() == 1) || ((vbs.size() > 2) &&(!((VariableBinding) vbs.get(1)).getOid().equals(SnmpConstants.snmpTrapOID)))) {
				vbs.add(1, new VariableBinding(SnmpConstants.snmpTrapOID, new OID(vbsOID)));
			}
		for (int i=0; i<vbs.size(); i++) {
			pdu.add((VariableBinding)vbs.get(i));
		}
	    pdu.setType(PDU.INFORM);
    
	    // enviando el PDU
	    respondio=true;
	    dato="";
	    /*
	    ResponseListener listener = new ResponseListener() {
	    public void onResponse(ResponseEvent event) {
	        PDU response = event.getResponse();
	        PDU request = event.getRequest();
	        if (response == null) {
	            //System.out.println("Request "+request+" timed out");
	            dato="Tiempo de espera excedido...";
	        }
	        else {
	            System.out.println("Received response "+response+" on request "+request);
	            dato=String.valueOf(response);
	            //Tratamiento de la respuesta
	            System.out.println("respuesta: "+dato);
	    	}
	    	respondio=false;
		}};
		*/
		//snmp.sendPDU(pdu, target, null, listener);
		
		PDU response = null;
		ResponseEvent responseEvent=null;
		long startTime = System.currentTimeMillis();
		responseEvent = snmp.send(pdu, target);
		if (responseEvent != null) {
		  response = responseEvent.getResponse();
		  //System.out.println("Received response after "+(System.currentTimeMillis()-startTime)+" millis");
		  //System.out.println("La respuesta fue: "+responseEvent);
		  //System.out.println("respuesta: "+response);
		}
		
		
		
		
		//System.out.println("envie el informv3...");
	    snmp.close();
    
    }catch (Exception e){e.printStackTrace();}
        	
  	return respuesta;
  
  }	 
	  
  public static void main(String args[]) throws Exception {
  	
  	enviarTrapInform manager = new enviarTrapInform();
  	//TRAPSv1
  	/*
  	System.out.println(manager.trapv1("192.168.0.5", "162", "public", 3, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2854",PDUv1.COLDSTART,0));
  	System.out.println(manager.trapv1("192.168.0.5", "162", "public", 3, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2854",PDUv1.WARMSTART,0));
  	System.out.println(manager.trapv1("192.168.0.5", "162", "public", 3, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2854",PDUv1.LINKDOWN,0));
  	System.out.println(manager.trapv1("192.168.0.5", "162", "public", 3, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2854",PDUv1.LINKUP,0));
  	System.out.println(manager.trapv1("192.168.0.5", "162", "public", 3, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2854",PDUv1.AUTHENTICATIONFAILURE,0));
  	System.out.println(manager.trapv1("192.168.0.5", "162", "public", 3, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2854",PDUv1.ENTERPRISE_SPECIFIC,1));
  	*/
  	//TRAPS E INFORM SNMPv2
  	/*
  	System.out.println(manager.informv2c("192.168.0.5", "162", "public", 3, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.trapv2c("192.168.0.5", "162", "public", 3, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	
  	System.out.println(manager.trapv2c("192.168.0.5", "162", "public", 3, 1500, "",String.valueOf(SnmpConstants.coldStart)));
  	System.out.println(manager.trapv2c("192.168.0.5", "162", "public", 3, 1500, "",String.valueOf(SnmpConstants.warmStart)));
  	System.out.println(manager.trapv2c("192.168.0.5", "162", "public", 3, 1500, "",String.valueOf(SnmpConstants.linkDown)));
  	System.out.println(manager.trapv2c("192.168.0.5", "162", "public", 3, 1500, "",String.valueOf(SnmpConstants.linkUp)));
  	System.out.println(manager.trapv2c("192.168.0.5", "162", "public", 3, 1500, "",String.valueOf(SnmpConstants.authenticationFailure)));
  	*/
  	/*
  	System.out.println("COLDSTART: "+String.valueOf(SnmpConstants.coldStart));
  	System.out.println("WARMSTART: "+String.valueOf(SnmpConstants.warmStart));
  	System.out.println("LINKDOWN: "+String.valueOf(SnmpConstants.linkDown));
  	System.out.println("LINKUP: "+String.valueOf(SnmpConstants.linkUp));
  	System.out.println("AUTHENTICATIONFAILURE: "+String.valueOf(SnmpConstants.authenticationFailure));
  	System.out.println("Otro: "+"1.3.6.1.4.1.2789.2005");
  	*/
  	
  	//TRAPS E INFORM SNMPv3
  	
  	System.out.println(manager.informv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,3, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
/*  
  	System.out.println(manager.trapv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,2, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.informv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,3, 1500, "1.3.6.1.4.1.2789.2005.2={s}WWW Server Has Been ","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.trapv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,2, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.informv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,3, 1500, "1.3.6.1.4.1.2789.2005.3={s}WWW Server Has ","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.trapv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,2, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.informv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,3, 1500, "1.3.6.1.4.1.2789.2005.4={s}WWW Server ","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.trapv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,2, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.informv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,3, 1500, "1.3.6.1.4.1.2789.2005.5={s}WWW ","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.trapv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,2, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.informv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,3, 1500, "1.3.6.1.4.1.2789.2005.6={s}WWW otro","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.trapv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,2, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  */	
  //	System.out.println(manager.trapv3("192.168.0.20", "162", "seminario", "12345678", "12345678", SecurityLevel.NOAUTH_NOPRIV,2, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	/*
  	System.out.println(manager.informv3("192.168.0.5", "162", "seminario", "12345678", "12345678", SecurityLevel.AUTH_NOPRIV,2, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.trapv3("192.168.0.5", "162", "seminario", "12345678", "12345678", SecurityLevel.AUTH_NOPRIV,2, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.informv3("192.168.0.5", "162", "seminario", "12345678", "12345678", SecurityLevel.AUTH_PRIV,2, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	System.out.println(manager.trapv3("192.168.0.5", "162", "seminario", "12345678", "12345678", SecurityLevel.AUTH_PRIV,2, 1500, "1.3.6.1.4.1.2789.2005.1={s}WWW Server Has Been Restarted","1.3.6.1.4.1.2789.2005"));
  	*/
  	
  }	  
	  
}

⌨️ 快捷键说明

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