[SNMP4J] No Errors but no results either?
James Prickett
jprickett at force3.com
Wed Aug 25 22:08:12 CEST 2010
When I run my code below, this is what I get in the response.getResponse() string:
<snip>
REPORT[reqestID=1745013846, errorStatus=0, errorIndex=0, VBS[1.3.6.1.6.3.15.1.1.3.0 = 23]]
</snip>
Note that the number 23 is incremented and requested changes with each subsequent execution of the code
So my problem is this: I don't get an error back in the response, yet I don't see anything happening on my switch either (it should be turning off port Gi0/8))
I would be most grateful to whomever can take a look at my code and tell me what I'm doing wrong! :)
Regards,
James
CODE
----------------
package example;
import java.io.IOException;
import org.snmp4j.PDU;
import org.snmp4j.ScopedPDU;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.UserTarget;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.mp.MPv3;
import org.snmp4j.mp.MessageProcessingModel;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.security.AuthMD5;
import org.snmp4j.security.PrivDES;
import org.snmp4j.security.SecurityLevel;
import org.snmp4j.security.SecurityModel;
import org.snmp4j.security.SecurityModels;
import org.snmp4j.security.SecurityProtocols;
import org.snmp4j.security.USM;
import org.snmp4j.security.UsmUser;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.UdpAddress;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping;
/**
* @author James Prickett
*
*/
public class SnmpExample {
// private static final OctetString UP = new OctetString("1");
private static final OctetString DOWN = new OctetString("2");
/**
* @param args
* The command-line arguments
*/
public static void main(String[] args) {
PDU pdu = new ScopedPDU();
pdu.setType(PDU.SET);
pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.2.2.1.7"), new OctetString("Gi0/8")));
pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.2.2.1.7"), DOWN));
UserTarget target = new UserTarget();
target.setAddress(new UdpAddress("10.10.0.2/16"));
target.setVersion(SnmpConstants.version3);
target.setRetries(1);
target.setTimeout(500);
target.setSecurityLevel(SecurityLevel.AUTH_NOPRIV);
target.setSecurityName(new OctetString("MD5DES"));
target.setSecurityModel(SecurityModel.SECURITY_MODEL_USM);
try {
Snmp snmp = new Snmp(new DefaultUdpTransportMapping());
snmp.listen();
TransportMapping transport = new DefaultUdpTransportMapping();
snmp = new Snmp(transport);
USM usm = new USM(SecurityProtocols.getInstance(),
new OctetString(MPv3.createLocalEngineID()), 0);
SecurityModels.getInstance().addSecurityModel(usm);
transport.listen();
snmp.getUSM().addUser(new OctetString("MD5DES"),
new UsmUser(new OctetString("MD5DES"),
AuthMD5.ID,
new OctetString("MD5DESUserAuthPassword"),
PrivDES.ID,
new OctetString("MD5DESUserPrivPassword")));
ResponseEvent response = snmp.send(pdu, target);
if (response.getResponse() != null) {
System.out.println(response.getResponse().toString());
} else {
System.out.println(response.getError().getMessage());
}
} catch (IOException e) {
e.printStackTrace();
System.exit(99);
}
}
}
More information about the SNMP4J
mailing list