Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import java.net.InetAddress;
- import java.net.UnknownHostException;
- import org.snmp4j.CommandResponder;
- import org.snmp4j.CommandResponderEvent;
- import org.snmp4j.CommunityTarget;
- import org.snmp4j.MessageException;
- import org.snmp4j.PDU;
- import org.snmp4j.Snmp;
- import org.snmp4j.Target;
- import org.snmp4j.mp.StateReference;
- import org.snmp4j.mp.StatusInformation;
- import org.snmp4j.smi.*;
- import org.snmp4j.transport.DefaultUdpTransportMapping;
- public class Agent {
- public static void main(String[] args){
- try {
- UdpAddress udp = new UdpAddress("localhost/41265");
- DefaultUdpTransportMapping transport = new DefaultUdpTransportMapping(udp);
- Snmp snmp = new Snmp(transport);
- snmp.addCommandResponder(new CommandResponder() {
- @Override
- public void processPdu(CommandResponderEvent event) {
- PDU pdu = event.getPDU();
- PDU response = new PDU();
- VariableBinding var = new VariableBinding(pdu.get(0).getOid());
- var.setVariable(new Counter32(123));
- response.add(var);
- response.setType(PDU.RESPONSE);
- System.out.println("Made response PDU: "+ response.toString());
- //============== send response
- try {
- if (response.getBERLength() > event.getMaxSizeResponsePDU()) {
- // response is tooBig
- if (response.getType() != PDU.REPORT) {
- if (event.getPDU().getType() == PDU.GETBULK) {
- while ((response.size() > 0) &&
- (response.getBERLength() >
- event.getMaxSizeResponsePDU()))
- {
- response.trim();
- }
- }
- else {
- response.clear();
- response.setRequestID(event.getPDU().getRequestID());
- response.setErrorStatus(PDU.tooBig);
- }
- }
- if (response.getBERLength() > event.getMaxSizeResponsePDU()) {
- //still too big and can't send a response
- return;
- }
- }
- StatusInformation status = new StatusInformation();
- StateReference stateRef = event.getStateReference();
- if (stateRef == null) {
- System.out.println("No state reference available for event="+
- event+". Cannot return response="+response);
- }
- else {
- stateRef.setTransportMapping(event.getTransportMapping());
- int resp = event.getMessageDispatcher().returnResponsePdu(event.getMessageProcessingModel(),
- event.getSecurityModel(),
- event.getSecurityName(),
- event.getSecurityLevel(),
- response,
- event.getMaxSizeResponsePDU(),
- stateRef,
- status);
- }
- }
- catch (MessageException ex) {
- System.out.println("Failed to send response to request "+event);
- }
- //=============end send response
- // TODO Auto-generated method stub
- }
- });
- snmp.listen();
- }
- catch (Exception e){
- }
- while(true){
- //Now we play the waiting game
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement