You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by snmpost <ao...@gmail.com> on 2010/03/20 12:29:36 UTC
snmp protocol
hi,
iam trying to understand this codev but i could not
is there someone who can help me please
import org.snmp4j.CommunityTarget;
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.event.ResponseListener;
import org.snmp4j.mp.MPv3;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.security.AuthMD5;
import org.snmp4j.security.PrivDES;
import org.snmp4j.security.SecurityLevel;
import org.snmp4j.security.SecurityModels;
import org.snmp4j.security.SecurityProtocols;
import org.snmp4j.security.USM;
import org.snmp4j.security.UsmUser;
import org.snmp4j.smi.*;
import org.snmp4j.transport.DefaultUdpTransportMapping;
public class snmp2
{
public static final String READ_COMMUNITY = "public";
public static final String WRITE_COMMUNITY= "private";
private static final String NameMach = "1.3.6.1.2.1.1.5.0";
private static final String IpTTL="1.3.6.1.2.1.4.2.0";
private static final String RAM="1.3.6.1.2.1.25.2.2.0";
private static final String NbProcess="1.3.6.1.2.1.25.1.6.0";
private static final String NbMaxProcess="1.3.6.1.2.1.25.1.7.0";
private static final String Ip="1.3.6.1.2.1.4.20.1.1";
private static final String StorageDesc="1.3.6.1.2.1.25.2.3.1.3.2";
private String msg="";
public snmp2()
{
try
{
String strIPAddress = "127.0.0.1";
String val1="EXPLORATION";
String val2="Exp";
//snmpSet(strIPAddress, WRITE_COMMUNITY,NameMach, val1);
msg =snmpGet(strIPAddress,READ_COMMUNITY,NameMach);
//msg =snmpGet(strIPAddress,READ_COMMUNITY,IpTTL);
//msg =snmpGet(strIPAddress,READ_COMMUNITY,RAM);
//msg =snmpGet(strIPAddress,READ_COMMUNITY,NbProcess);
//msg =snmpGet(strIPAddress,READ_COMMUNITY,NbMaxProcess);
//msg =snmpGet(strIPAddress,READ_COMMUNITY,Ip);
//msg =snmpGet(strIPAddress,READ_COMMUNITY,StorageDesc);
//msg =snmpv3Get(strIPAddress,READ_COMMUNITY,NameMach);
}
catch (Exception e)
{
e.printStackTrace();
}
}
private int SNMP_PORT=161;
public void snmpSet(String strAddress, String community, String strOID,
String Value)
{
strAddress= strAddress+"/"+SNMP_PORT;
Address targetAddress = GenericAddress.parse(strAddress);
Snmp snmp;
try
{
TransportMapping transport = new DefaultUdpTransportMapping();
snmp = new Snmp(transport);
transport.listen();
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString(community));
target.setAddress(targetAddress);
target.setRetries(2);
target.setTimeout(5000);
target.setVersion(SnmpConstants.version1);
PDU pdu = new PDU();
//pdu.add(new VariableBinding(new OID(strOID), new Integer32(Value)));
pdu.add(new VariableBinding(new OID(strOID), new OctetString(Value)));
pdu.setType(PDU.SET);
ResponseListener listener = new ResponseListener()
{
public void onResponse(ResponseEvent event)
{
((Snmp)event.getSource()).cancel(event.getRequest(), this);
msg="Set Status is:"+event.getResponse().getErrorStatusText();
//System.out.println(msg);
}
};
snmp.send(pdu, target, null, listener);
snmp.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public String snmpGet(String strAddress, String communit, String strOID)
{
String str="";
try
{
OctetString community = new OctetString(communit);
strAddress= strAddress+"/"+SNMP_PORT;
Address targetaddress = new UdpAddress(strAddress);
TransportMapping transport = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transport);
transport.listen();
CommunityTarget comtarget = new CommunityTarget();
comtarget.setCommunity(community);
comtarget.setVersion(SnmpConstants.version1);
comtarget.setAddress(targetaddress);
comtarget.setRetries(2);
comtarget.setTimeout(5000);
PDU pdu = new PDU();
ResponseEvent response;
pdu.add(new VariableBinding(new OID(strOID)));
pdu.setType(PDU.GET);
response = snmp.get(pdu,comtarget);
if(response != null)
{
if(response.getResponse().getErrorStatusText().equalsIgnoreCase("Success"))
{
PDU pduresponse=response.getResponse();
str=pduresponse.getVariableBindings().firstElement().toString();
if(str.contains("="))
{
int len = str.indexOf("=");
str=str.substring(len+1, str.length());
}
}
else str+="echec1";
}
else
{
msg="Feeling like a TimeOut occured";
//System.out.println(msg);
}
snmp.close();
}
catch(Exception e)
{
//e.printStackTrace();
str+="echec2";
}
//System.out.println("Response="+str);
return str;
}
public String snmpv3Get(String strAddress, String communit, String strOID)
{
String str="";
try
{
strAddress= strAddress+"/"+SNMP_PORT;
Address targetaddress = new UdpAddress(strAddress);
TransportMapping transport = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transport);
USM usm = new USM(SecurityProtocols.getInstance(),new
OctetString(MPv3.createLocalEngineID()), 0);
SecurityModels.getInstance().addSecurityModel(usm);
transport.getListenAddress();
byte a[]=new byte[]{1,2};
transport.sendMessage(targetaddress, a);
transport.listen();
snmp.getUSM().addUser(new OctetString("MD5DES"), new UsmUser(new
OctetString("MD5DES"),AuthMD5.ID,new
OctetString("MD5DESUserAuthPassword"),PrivDES.ID,new
OctetString("MD5DESUserPrivPassword")));
UserTarget comtarget = new UserTarget();
comtarget.setAddress(targetaddress);
comtarget.setRetries(1);
comtarget.setTimeout(5000);
comtarget.setVersion(SnmpConstants.version3);
comtarget.setSecurityLevel(SecurityLevel.AUTH_PRIV);
comtarget.setSecurityName(new OctetString("MD5DES"));
PDU pdu = new ScopedPDU();
ResponseEvent response;
pdu.add(new VariableBinding(new OID(strOID)));
pdu.setType(PDU.GET);
response = snmp.get(pdu,comtarget);
if(response != null)
{
if(response.getResponse().getErrorStatusText().equalsIgnoreCase("Success"))
{
PDU pduresponse=response.getResponse();
str=pduresponse.getVariableBindings().firstElement().toString();
if(str.contains("="))
{
int len = str.indexOf("=");
str=str.substring(len+1, str.length());
}
}
else str+="echec1";
}
else
{
msg="Feeling like a TimeOut occured";
//System.out.println(msg);
}
snmp.close();
}
catch(Exception e)
{
//e.printStackTrace();
str+=e.getMessage();
}
//System.out.println("Response="+str);
return str;
}
public String Aff()
{
return msg;
}
}
---Fin de la citation---
--
View this message in context: http://n3.nabble.com/snmp-protocol-tp464057p464057.html
Sent from the Development mailing list archive at Nabble.com.