📄 gettable.java
字号:
/*
* 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 + -