📄 snmpv1.java
字号:
/*
* SNMPv1 - Status: LISTO!!!
*/
package versiones.SNMPv1;
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 SNMPv1{
private Snmp snmp = null;
private static boolean respondio;
private static String dato;
public String getNextv1(String ip, String puerto, String comunidad, int intentos, int tiempoEspera, Vector requerimiento,String mensaje){
String respuesta = "";
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();
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.GETNEXT);
// enviando el PDU
dato="";
ResponseEvent event = snmp.send(pdu, target);
PDU response = event.getResponse();
PDU request = event.getRequest();
if (response == null) {
//System.out.println("Request "+request+" timed out");
dato=mensaje;
}else{
//System.out.println("Received response "+response+" on request "+request);
dato=String.valueOf(response);
//Tratamiento de la respuesta
//System.out.println("respuesta: "+dato);
//System.out.println("index: "+respuesta.indexOf("VBS"));
int lugar =dato.indexOf("VBS");
int ini = dato.indexOf("[",lugar);
int fin = dato.indexOf("]",lugar);
ini++;
dato=dato.substring(ini,fin);
if (dato.indexOf(";")!=(-1)){
String tempPicador = "";
StringTokenizer Token = new StringTokenizer (dato,";");
while(Token.hasMoreTokens()){
tempPicador=tempPicador.concat(String.valueOf(Token.nextToken())+"\n");
}
dato=tempPicador;
}else{
dato=dato.concat("\n");
}
dato="\n ".concat(dato);
//Fin del tratamiento de la respuesta
}
}catch (Exception e){e.printStackTrace();}
//System.out.println("El resultado fue: "+dato);
//System.out.println("Programa Terminado");
respuesta = dato;
return respuesta;
}
public String getv1(String ip, String puerto, String comunidad, int intentos, int tiempoEspera, Vector requerimiento,String mensaje){
String respuesta = "";
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();
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.GET);
// enviando el PDU
dato="";
ResponseEvent event = snmp.send(pdu, target);
PDU response = event.getResponse();
PDU request = event.getRequest();
if (response == null) {
//System.out.println("Request "+request+" timed out");
dato=mensaje;
}else {
//System.out.println("Received response "+response+" on request "+request);
dato=String.valueOf(response);
//Tratamiento de la respuesta
//System.out.println("respuesta: "+dato);
//System.out.println("index: "+respuesta.indexOf("VBS"));
int lugar =dato.indexOf("VBS");
int ini = dato.indexOf("[",lugar);
int fin = dato.indexOf("]",lugar);
ini++;
dato=dato.substring(ini,fin);
if (dato.indexOf(";")!=(-1)){
String tempPicador = "";
StringTokenizer Token = new StringTokenizer (dato,";");
while(Token.hasMoreTokens()){
tempPicador=tempPicador.concat(String.valueOf(Token.nextToken())+"\n");
}
dato=tempPicador;
}else{
dato=dato.concat("\n");
}
dato="\n ".concat(dato);
//Fin del tratamiento de la respuesta
}
}catch (Exception e){e.printStackTrace();}
//System.out.println("El resultado fue: "+dato);
//System.out.println("Programa Terminado");
respuesta = dato;
return respuesta;
}
public String setv1(String ip, String puerto, String comunidad, int intentos, int tiempoEspera, Vector requerimiento, Variable[] valor, String mensaje){
String respuesta = "";
try{
Address targetAddress = GenericAddress.parse("udp:"+ip+"/"+puerto);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -