[SNMP4J] Problem in the code
Venkat Krishnan
svkrishnan70 at gmail.com
Sat May 29 09:06:29 CEST 2010
Hi
I have written a code in Java which gives me a null response when i do a
getNext.
I have checked this in wireshark also.
My SnmpgetNext command is given like this :
*snmpgetnext -v 3 -u manager2 -l authPriv -a MD5 -A password321 -x password
-X DES <IP> , <OID>.*
Where do i make wrong. Can you please help me on this.
import java.io.IOException;
import java.util.List;
import java.util.Vector;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.CommunityTarget;
import org.snmp4j.PDU;
import org.snmp4j.UserTarget;
import org.snmp4j.Session;
import org.snmp4j.ScopedPDU;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.mp.MPv3;
import org.snmp4j.mp.MessageProcessingModel;
import org.snmp4j.smi.Address;
import org.snmp4j.security.SecurityLevel;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.security.SecurityProtocols;
import org.snmp4j.security.*;
import org.snmp4j.smi.OID;
import org.snmp4j.security.UsmUser;
import org.snmp4j.smi.OctetString;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.security.*;
import org.snmp4j.security.AuthMD5;
import org.snmp4j.security.PrivDES;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.*;
import org.snmp4j.util.DefaultPDUFactory;
import org.snmp4j.util.TableEvent;
import org.snmp4j.util.TableUtils;
public class Test1
{
/*
* Class variable declarations
*/
PDU requestPDU = null;
Snmp snmp = null;
CommunityTarget target = null;
String responseString = null;
TransportMapping transport;
OctetString username = new OctetString("manager2");
OctetString authname = new OctetString("password321");
OctetString Privname = new OctetString("password321");
ResponseEvent response;
USM usm;
/*
* Main method; point of execution start.
*/
public static void main(String[] args) throws IOException
{
Test1 t = new Test1();
}
public Test1() throws IOException
{
//System.out.println("I am inside test1 function");
Address targetAddress=GenericAddress.parse("udp:10.130.157.200/161");
System.out.println("The value of targetAddress is"+ targetAddress);
transport = new DefaultUdpTransportMapping();
Snmp snmp;
snmp = new Snmp(transport);
byte[] localEngineID =
((MPv3)snmp.getMessageProcessingModel(MessageProcessingModel.MPv3)).createLocalEngineID();
//System.out.println(localEngineID);
USM usm = new USM(SecurityProtocols.getInstance(),new
OctetString(localEngineID),0);
usm.removeAllUsers();
//System.out.println("I am here");
SecurityModels.getInstance().addSecurityModel(usm);
snmp.setLocalEngine(localEngineID,0,0);
UsmUser usmuser = new
UsmUser(username,AuthMD5.ID,authname,PrivDES.ID,Privname,new
OctetString(localEngineID));
//System.out.println("The value of user is \n"+usmuser);
usm.addUser(username,null,usmuser);
snmp.getUSM().addUser(username,usmuser);
//System.out.println("2nd here");
ScopedPDU requestPDU = new ScopedPDU();
//PDU pdu = new ScopedPDU();
requestPDU.add(new VariableBinding(new
OID("1.3.6.1.4.1.6486.800.1.2.1.8.1.1.1.1.1.")));
requestPDU.setErrorIndex(0);
requestPDU.setErrorStatus(0);
requestPDU.setMaxRepetitions(3);
requestPDU.setType(PDU.GETNEXT);
//Address targetAddress = new UdpAddress("127.0.0.1/161");
UserTarget target = new UserTarget();
target.setAddress(targetAddress);
target.setRetries(1);
target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
target.setSecurityModel(SecurityModel.SECURITY_MODEL_USM);
target.setTimeout(5000);
target.setVersion(SnmpConstants.version3);
snmp.listen();
System.out.println("The value of requestPDU is \n"+ requestPDU);
System.out.println("The value of Target is \n"+ target);
ResponseEvent response = snmp.send(requestPDU,target);
PDU responsePDU = response.getResponse();
if (responsePDU != null)
{
String result =
responsePDU.getVariableBindings().firstElement().toString();
if(result.contains("="))
{
int len = result.indexOf("=");
result = result.substring(len+1,result.length());
System.out.println("The value of responsePDU is "+ result);
}
}
else
{
System.out.println("Timed out");
}
//Address PeerAddress = response.getPeerAddress();
//System.out.println("The value of PeerAddress " + PeerAddress);
snmp.close();
}
}
Regards
Venkata Krishnan.S.
More information about the SNMP4J
mailing list