IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Utilisation de l'API SNMP4J et de la MIB


Sujet :

API standards et tierces Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Utilisation de l'API SNMP4J et de la MIB
    Bonjour,

    J'effectue un stage dont la première partie consiste à ecrire un programme pour récupérer des infos sur le cpu,ram,os,logiciels installées... en java avec le protocole SNMP. J'aie télécharger l'api SNMP4j,agent et moniteur mais je sais pas comment les installer ou plutot comment les incorporer dans mes projets et je ne sais pas non plus quel partie de la MIB interroger pour avoir ces informations.
    Si j'installe l'agent SNMP fournit par Microsoft, c'est pas la peine que j'utilise l'agent de SNMP4J? Pourrais je interrger l'agent SNMP microsoft avec un programme qui envoie des requetes avec SNMP4j?

    Je vous en prie aider moi
    Je suis vraiment perdu.

  2. #2
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut alaaaddine
    bonjour,
    j'ai aussi un stage dont la 1ere partie consiste a realiser une application ki recoi des trape en utilisant le snmp, j'ai telechargé l'API snmp4j, et je ne sai pa cmt l' utiliser, et je ss vraiment planté, si quelqu'un peu m'aider a ce sujet je serai tres reconnaissan,
    merci

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 78
    Points : 58
    Points
    58
    Par défaut meme chose
    j'ai aussi un stage qui va dans le meme sens que les votres chers amis, alors on peut s'entraider , le mien consiste a developpez une app d'alarm monitoring , detecter des alarms (l'agent snmp) et construire les trames snmp et les envoyer a un agant manager. pour moi , il s'agit aussi d'implementer tout ca en respectant une interface propre a Nokia s'appelle NE3S, on a un framework sur le quel se baser, mon pb a moi , c'est uaniveau du demarrage du framework qui demarre des registres et bq d'autres choses j'ai suite a l'instruction suivante remoteLM.registerComponents() ; l'erreur suivante :
    unable to connect to or start RMI register :java.rmi.server.exportexception: port already in use:162 nested exception is : java.net.bindException : adress already in use JVM_bind.
    a vrai dire , pour snmp4j et mib, je ne suis pas encore arrivé la , mais ca viendra si j'arrive deja a bien configuré mon framework , ca s'appelle esymac .
    restons alors en contact les amis
    merci bn courage

  4. #4
    Membre régulier Avatar de Iori Yagami
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 107
    Points : 88
    Points
    88
    Par défaut Meme Probleme
    Salut, je 'inscris moi aussi à l'association des "Ceux qui veulent comprendre SNMP4J".
    Moi je fais un mini projet qui consiste simplement à un administrateur réseau en Java. je veux utiliser SNMP, alors j'ai téléchargé la SNMP4J et j'essais depuis une semaine à la déchiffrer.
    J'ai compris quelques petits truc, comme l'envoi des messages, c'est a l'aide de la classe
    Snmp. qui recevra deux parametres : PDU et Target. le premier c'est le message à envoyer, il contient le type du message (GET ou INFORM ou SET etc) les variables concernées de la MIB (VariableBinding) et c'est là que je plante. parceque je ne sais pas de quel MIB on parle? d'un agent SNMP implémenté dans le système? ou d'un agent de la bibliothèque SNMP4J ? et si c'est le deuxième cas comment le faire? car pour le premier, j'ai envoyer le PDU pour une Target qui prend en parametre l'adresse locale, et je ne reçois que la valeur "NULL".
    On m'a dis qu'il faut augmenter la valeur de TimeOut dans Target. je vais le faire, mais je ne crois pas que c'est vraiment utile.
    Essayez de lire le java-Doc de la SNMP4J peut être vous y arriverez. Si quelqu'un trouve quelque chose, qu'il nous dise!!
    et Merci.

  5. #5
    Membre régulier Avatar de Iori Yagami
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 107
    Points : 88
    Points
    88
    Par défaut
    Bonjour,
    aprés des heures à regarder le code source de l'API SNMP, voila ce que j'ai pu faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
    package netwokTools;
     
    import java.io.IOException;
    import java.net.InetAddress;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Vector;
    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 SNMPCommands implements ResponseListener {
    	String resp="";
    	String targetAddress;
     
    	public SNMPCommands(String address) {
    		this.targetAddress = address;
    	}
     
    	public void send(int[] OIDvar, int ReqType) {
    		Address targetAddress = GenericAddress.parse("udp:"+this.targetAddress+"/161");
    		TransportMapping transport = null;
    		try {
    			transport = new DefaultUdpTransportMapping();
    		} catch (IOException e1) {
    			System.out.println("Error here");
    		}
    		Snmp snmp = new Snmp(transport);
     
    		try {
    			snmp.listen();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
     
    		//	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);
    		   target.setTimeout(5000);
     
    		   // creating PDU
    		   PDU pdu = new PDU();
    		   pdu.add(new VariableBinding(new OID(OIDvar)));
    		   pdu.setType(ReqType);
     
    		   //The Send Action
    		   try {
    			   snmp.send(pdu, target, null, this);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}	
    	}
     
    	public String getOS() {
    		send(new int[] {1,3,6,1,2,1,1,1,0}, PDU.GET);
    		while (resp.equals(""));
    		String full = resp.split(" = ")[1];
    		int begin = full.indexOf("Software: ");
    		int end = full.indexOf("Version");
    		return full.substring(begin+"Software: ".length(),end+"Version ".length()+4);
    	}
     
    	public Date getSystemConnectionPeriod() {
    		int[] oid = new int[] {1,3,6,1,2,1,1,3,0};
    		this.send(oid, PDU.GET);
    		while (this.resp.equals(""));
    		String val = resp.split(" = ")[1];
    		String args[] = (val.substring(0,val.length()-3)).split(":");
    		Date D = new Date(100000);
    		D = this.makeDate(args);
    		return D;
    	}
     
     
    	public static void main(String[] args) {
    		SNMPCommands com = new SNMPCommands("10.50.21.22");
    		SNMPCommands com2 = new SNMPCommands("10.50.21.22");
     
     
    		System.out.println(com.getOS());
    		System.out.println(com2.getSystemConnectionPeriod());
    	}
     
    	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);
    		this.resp = event.getResponse().get(0).toString();
    	}
     
    	@SuppressWarnings("deprecation")
    	public Date makeDate(String[] args) {
    		Calendar C = Calendar.getInstance();
    		C.setTimeInMillis(System.currentTimeMillis());
    		Date D = new Date(C.getTime().getYear(), C.getTime().getMonth(), C.getTime().getDate());
    		D.setHours(Integer.parseInt(args[0]));
    		D.setMinutes(Integer.parseInt(args[1]));
    		D.setSeconds(Integer.parseInt(args[2]));
    		return D;
    	}
     
    }
    je cherche encore comment avoir une répose WALK, je veux dire une réponse sur plusieurs lignes comme par exemple la liste des addresses IP etc.
    Il y a la classe SNMP4J.tools.SnmpRequest, mais aucune explication, il faut déchiffrer le code.
    Si quelqu'un peut améliorer ce code, j'en serai ravi biensur.
    merci.

Discussions similaires

  1. Comment utiliser Windows Shell API ?
    Par evlan dans le forum Windows
    Réponses: 1
    Dernier message: 11/02/2007, 22h38
  2. [VB.Net]Utilisation de l'API OOo
    Par DonF dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/01/2007, 13h13
  3. [SOAP] Utilisation de quelle API ?
    Par _beber85 dans le forum Services Web
    Réponses: 3
    Dernier message: 29/05/2006, 13h21
  4. [DOM] Utilisation de l'API DOM pour créer du HTML sous IE
    Par pedouille dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/01/2006, 14h48
  5. (Problème) Utilisation de l'API mySQL [Delphi 2005 Perso]
    Par will-scs dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/08/2005, 18h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo