Bonjour,
je suis en stage de fin d'étude et je dois developper une application en java qui utilise le protocole snmp pour ça j'ai telecharger l'API snmp4j et j'ai le importe dans un projet java et je importer l'agent snmp4j dans le meme projet, ma question est : est ce que c'est bien ce que je fais ? et comment utiliser l'API pour recuperer quelque informations comme CPU, MEMOIRE, TEMPIRATURE..... , et pour la mib est ce que je dois aussi importer la mib fournit avec l'agent snmp4j ou je utilise une autre mib pour la recuperation de ce gere d'informations ?
aider moi je suis vraiment bloquee et je connais pas trop java je sui debutante c'est fait un moi que je commancer mon stage et j'ai meme pas encore debuter le travaille a faire !!!!!!!!
merci d'avance



sinon pour ce que j ai fai j ai ete dans la doc de snmp4j tu regarde la classe snmp et dedans il y a un bout de code comme exemple pour récupérer la valeur d un oid ta juste a rajouter les import et çà marche normalement.
merci beaucoup et je suis desoler si je te derange mais parment on parle pas de la meme chargement du snmp4j donc je ve que tu me explique comment tu a importer snmp4j ? est ce que tu travaille sur eclipse? est quant tu a regarder la classe snmp es tu a trouve des bouts de codes tu les coupier dans une classe et tu la executer ou quoi ???
mesri encore
je vais t expliquer en détail ma démarche :
-création d un java project.
-copier le snmp4j.jar dans le répertoire de ton projet (dans ton workspace ta un répertoire "utilisateur" ou utilisateur est e nom que tu a choisi a la création du workspace la tu a le repertoire de ton projet)
-clique droit ->propriete onglet librairies ->addJars tu développe ton projet a l aide du "+" tu sélectionne ton jar et <OK>
- pour tester tu peu créer une classe test
et dedans doit y avoir çà :
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.event.ResponseListener;
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;
public class test {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Address targetAddress = GenericAddress.parse("udp:127.0.0.1/161");
TransportMapping transport = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transport);
//pour du snmpv3
/*USM usm = new USM(SecurityProtocols.getInstance(),
new OctetString(MPv3.createLocalEngineID()), 0);
SecurityModels.getInstance().addSecurityModel(usm);*/
transport.listen();
// setting up target
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setAddress(targetAddress);
target.setRetries(2);
target.setTimeout(1500);
target.setVersion(SnmpConstants.version1);
// creating PDU
PDU pdu = new PDU();
pdu.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,1,1})));
pdu.add(new VariableBinding(new OID(new int[] {1,3,6,1,2,1,1,2})));
pdu.setType(PDU.GETNEXT);
// sending request
ResponseListener listener = new ResponseListener() {
public void onResponse(ResponseEvent event) {
// Always cancel async request when response has been received
// otherwise a memory leak is created! Not canceling a request
// immediately can be useful when sending a request to a broadcast
// address.
((Snmp)event.getSource()).cancel(event.getRequest(), this);
System.out.println("Received response PDU is: "+event.getResponse());
}
};
snmp.send(pdu, target, null, listener);
}
}
j ai tester ca marche et ca te donne :
Received response PDU is: RESPONSE[requestID=1809038804, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.1.1.0 = Hardware: x86 Family 15 Model 1 Stepping 2 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.1 (Build 2600 Uniprocessor Free); 1.3.6.1.2.1.1.2.0 = 1.3.6.1.4.1.311.1.1.3.1.1]]
dans la console
ceci est a condition que tu est un agent snmp déjà installer en local.
si tu te connecte a un agent sur un autre ordinateur a la ligne :
Address targetAddress = GenericAddress.parse("udp:127.0.0.1/161");
tu remplace 127.0.0.1 par l adresse ip de l ordi sur lequel tu veux tu connecter.
j'ai pris cette api qui est dédiée a la création d un manager et non d un agent
http://www.snmp4j.org/snmp4j-1.9.1e.zip
voila j espère que ça ira :D