📄 snmpv3.java
字号:
/*
* SNMPv3 - Status: LISTO!!!
*/
package versiones.SNMPv3;
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 SNMPv3{
private String erroresGenerales04 = "\n Tiempo de espera excedido...\n";
private String erroresGenerales29 = " Error: El usuario no se encuentra en el Agente...\n";
private String erroresGenerales30 = " Error: La clave y/o el algoritmo de autenticaci髇 proporcionados son incorrectos...\n";
private String erroresGenerales31 = " Error: La clave y/o el algoritmo de encriptaci髇 proporcionados son incorrectos...\n";
public void cambiarIdiomaAMensajes(String s04,String s29,String s30,String s31){
erroresGenerales04 = s04;
erroresGenerales29 = s29;
erroresGenerales30 = s30;
erroresGenerales31 = s31;
}
private Snmp snmp = null;
private static String dato;
public String getBulkv3(String ip, String puerto, String nombreUsuario, String claveAutenticacion, String claveEncriptacion, int SecurityLevel,int intentos, int tiempoEspera, Vector requerimiento,int NonRepeaters, int MaxRepetitions, OID metAut, OID metPriv){
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)));
}*/
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();
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.GETBULK);
pdu.setNonRepeaters(NonRepeaters);//0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -