import java.io.IOException;
import org.snmp4j.CommunityTarget;
import org.snmp4j.PDU;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping;
import org.snmp4j.smi.Variable;
public class SnmpMain {
public static void main(String[] args) {
Address targetAddress = GenericAddress.parse("udp:127.0.0.1/161");
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setAddress(targetAddress);
target.setTimeout(10000);
target.setVersion(SnmpConstants.version1);
// creating PDU
PDU pdu = new PDU();
pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.1.1")));
pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.1.2")));
pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.1.3")));
pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.1.4")));
pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.1.5")));
// pdu.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,1,2})));
pdu.setType(PDU.GETNEXT);
try {
TransportMapping transport = new DefaultUdpTransportMapping();
transport.listen();
Snmp snmp = new Snmp(transport);
ResponseEvent response = snmp.send(pdu, target);
if (response != null) {
PDU respPdu = response.getResponse();
for (int i = 0; i < respPdu.size(); i++) {
VariableBinding varBinding = respPdu.get(i);
Variable var = varBinding.getVariable();
System.out.println(var.toString());
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
搞了半天没调通,原来忘了transport.listen()了。
呵呵,准备在用Flash做个类似vista那样的CPU,内存占用率的仪表盘。