Protocol SNMP

Fermé
espritien Messages postés 52 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 24 mars 2011 - 14 déc. 2010 à 20:12
espritien Messages postés 52 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 24 mars 2011 - 18 déc. 2010 à 03:22
Bonjour,

je suis entrain de réaliser une application java qui permet de découvrir les équipements connectés au réseau afin de les contrôler. la recherche des équipements se fait par le protocol SNMP à l'aide des OID de chaque équipement. un Mib Browser contient les différents OID qu'on peut utiliser mais le problème c'est comment ça se fait???
j'ai réussi à identifier toutes informations( comme le nom du PC, le type du OS,...etc) mais celle de mon propre ordinateur. comment je peux avoir les informations des autres équipements liés à mon réseau?

Cordialement, Espritien

A voir également:

1 réponse

MyTux Messages postés 222 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 26 mars 2013 44
14 déc. 2010 à 23:27
bonjour,

Il te faut savoir si ces objets sur le réseau acceptent le snmp. Car le snmp est un service qui tourne sur un device, comme sur ton pc tu as certainement dû installé snmp sur celui-ci. Ensuite une fois que tu t'es assuré que c'est le cas, il te suffit de faire les query snmpwalk pour la syntaxe fait un man snmpwalk, une fois que tu as eu le résultat voulu essaie de transcrire cela en java.

Bien à toi,
MyTux.
0
espritien Messages postés 52 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 24 mars 2011 1
15 déc. 2010 à 00:27
oui ils acceptent, deja j'ai installé le service SNMP dans chaque pc. merci je vais essayer de faire ce que tu as dit.
0
bonsoir,
j'ai presque le même projet ,je doit afficher le contenu de la table d'adresse Mac d'un switch biensur a l'aide de snmp,le probleme c'est que je doit utiliser java précisemment l'API snmp4j,ma question c'est pouquoi l'utilistation de java alors qu'on peut faire la chose avec les commandes de snmp, et voila la classe prête comment je vais la tester ,un simple compiler ne va pas suffir.
0
espritien Messages postés 52 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 24 mars 2011 1
18 déc. 2010 à 03:22
voila ce que j'ai réussi à faire, une classe qui affiche les informations selon le OID:


public class ConnectionSNMP161 {
public ConnectionSNMP161() {
}
public String getRequest(String adresseHost, String OID){
String ret="";
try{
String community = "public";
int version = 1; // SNMPv1
InetAddress hostAddress = InetAddress.getByName(adresseHost);
SNMPv1CommunicationInterface comInterface = new SNMPv1CommunicationInterface(version, hostAddress, community);

StringTokenizer st = new StringTokenizer(OID, " ,;");
while (st.hasMoreTokens()){
String itemID = st.nextToken();
SNMPVarBindList newVars = comInterface.getMIBEntry(itemID);
SNMPSequence pair = (SNMPSequence)(newVars.getSNMPObjectAt(0));
SNMPObjectIdentifier snmpOID = (SNMPObjectIdentifier)pair.getSNMPObjectAt(0);
SNMPObject snmpValue = pair.getSNMPObjectAt(1);
String typeString = snmpValue.getClass().getName();
if (typeString.equals("snmp.SNMPOctetString")){
String snmpString = snmpValue.toString();
int nullLocation = snmpString.indexOf('\0');
if (nullLocation >= 0)
snmpString = snmpString.substring(0,nullLocation);
ret= snmpString;
}
else
ret=""+snmpValue;
}
}
catch(InterruptedIOException ee){


}
catch(Exception eq) {

}

return ret;
}



public static void main(String[] args) {
ConnectionSNMP161 a=new ConnectionSNMP161();

System.out.print("nom du pc ");
System.out.println(a.getRequest("127.0.0.1", "1.3.6.1.2.1.1.5.0"));
System.out.print("CPU ");
for(int i=1;i<4048;i++)
System.out.println(+i+a.getRequest("127.0.0.1","1.3.6.1.2.1.25.5.1.1.2."+i));

}
}


je travaille sur windows !
0