public class ValorMib {
private Snmp snmp;
private String [] valorMIBFinal={""};
public ValorMib() {
}
public String[] valorMib(String host, String[] mib,int port) {
try {
//cria a variavel address que contem o IP ou nome da maquina
//utiliza o protocolo UDP e a porta 161
Address address = GenericAddress.parse("udp:" + host + "/" + port);
//cria a variavel transport do qual estebelce um canal com o Gerente
TransportMapping transport = new DefaultUdpTransportMapping();
snmp = new Snmp(transport);
transport.listen();
//cria a variavel target responsavel por receber os paramentros
//Community,address, TimeOUt e versao SNMP
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setAddress(address);
target.setRetries(1);
target.setTimeout(100);
target.setVersion(SnmpConstants.version1);
//cria a variavel PDU que vai conter o valor da MIB
PDU pdu = new PDU();
//pdu.add(new VariableBinding(new OID(new int[] {1,3,6,1,4,1,2606,4,2,4,5,2,1,5,1})));
for (int i = 0; i < mib.length; i++) {
if ((mib[i]!=null)&&(mib[i]!="")){
pdu.add(new VariableBinding(new OID(mib[i])));
}
}
pdu.setType(PDU.GET);
synchronized (snmp) {
//envia mensagem ao gerente e cria um objeto listener
snmp.send(pdu, target, null, listener);
try {
snmp.wait();
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
catch (IOException e) {
e.printStackTrace();
}
return valorMIBFinal;
}
/**
* Objeto Listener responsavel por receber o retorno do agente
*/
private ResponseListener listener = new ResponseListener() {
/* (non-Javadoc)
* @see org.snmp4j.event.ResponseListener#onResponse(org.snmp4j.event.ResponseEvent)
* metodo onResponse aguarda resposta do Gerente
*/
public void onResponse(ResponseEvent event) {
((Snmp) event.getSource()).cancel(event.getRequest(), this);
System.out.println(event.getResponse());
synchronized (snmp) {
snmp.notifyAll();
}
}
};
}
classe main
public static void main(String[] args) {
String[] t=new String[3];
t[0]= “1.3.6.1.4.1.2606.4.2.3.5.2.1.5.4”;
t[1]= “1.3.6.1.4.1.2606.4.2.3.5.2.1.5.4”;
//t[2]= “1.3.6.1.4.1.2606.4.2.3.5.2.1.5.2”;
ValorMib valorMib = new ValorMib();
t=valorMib.valorMib(“10.144.4.46”, t, 161);
for (int i = 0; i < t.length; i++) {
System.out.println(“teste”+t[i]);
}
//valorMib.valorMib("10.144.4.46", new int[]{1,3,6,1,4,1,2606,4,2,3,5,2,1,5,4}, 161);
}
}