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

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.
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 !