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