|
Débuté par Patrice, 09 nov. 2021 20:58 - 6 réponses |
| |
| | | |
|
| |
Posté le 09 novembre 2021 - 20:58 |
Bonjour,
Sur ce que j'ai compris, on peut faire tout au pus du snmpv1 avec windev, est-ce que quelqu'un sait si en theorie ce serait possible avec socketcrée de faire du snmpv3 ? ou si il y a plus simple ?
Si c'est par socketconnect, il faut respecter les standart de cryptage specifique a snmpv3 et donc est-ce que windev connait ces algorithme de cryptage de base ?
Ou peut-etre en utilisant un .net ?
Une piste ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages Popularité : +183 (185 votes) |
|
Posté le 12 novembre 2021 - 13:03 |
hello, pour du SNMP V3 on peut utiliser l'assemblage dotnet sharpsnmplib disponible ici : https://www.nuget.org/packages/Lextm.SharpSnmpLib/ 1 - Télécharger le paquet nupkg (Download package) 2 - Ouvrir le fichier nupkg avec 7zip 3 - Extraire le fichier lib/net471/SharpSnmpLib.dll 4 - importer l'assemblage dotnet SharpSnmpLib.dll dans son projet. Voici un exemple de code pour faire un snmpGet v1 et un snmpGet v3 avec cet assemblage dans Windev :
QUAND EXCEPTIONEXCEPTION DANS cible est un IPEndPoint( "System.Net".IpAddress.Parse("127.0.0.1"),1161) maListeVariable est une "List<Variable>" monOid est un ObjectIdentifier("1.3.6.1.2.1.1.1.0") maVariable est une "Lextm.SharpSnmpLib".Variable(monOid) maListeVariable.Add(maVariable) varia est une "Lextm.SharpSnmpLib".Variable dynamique monRes est une "List<Variable>" dynamique community est un "Lextm.SharpSnmpLib".OctetString("public") monRes = Messenger.Get(VersionCode.V1, cible,community,maListeVariable,6000) POUR TOUT varia de monRes Trace(varia.ToString()) FIN
discovery est un Discovery dynamique = Messenger.GetNextDiscovery(SnmpType.GetRequestPdu) report est un ReportMessage dynamique = discovery.GetResponse(6000, cible) securityname est un "Lextm.SharpSnmpLib".OctetString("simulator") authpwd est un "Lextm.SharpSnmpLib".OctetString("auctoritas") privpwd est un "Lextm.SharpSnmpLib".OctetString("privatus") auth est un MD5AuthenticationProvider(authpwd) priv est un DESPrivacyProvider(privpwd, auth) myRequest est un GetRequestMessage(VersionCode.V3, Messenger.NextMessageId, ... Messenger.NextRequestId,securityname, ... maListeVariable, priv, Messenger.MaxMessageSize, report)
reply est un ISnmpMessage dynamique = SnmpMessageExtension.GetResponse(myRequest,6000, cible) pduReply est un ISnmpPdu dynamique = SnmpMessageExtension.Pdu(reply) SI pduReply.ErrorStatus.ToInt32() <> 0 ALORS Erreur("Erreur dans la réponse SNMP V3") SINON POUR TOUT varia de SnmpMessageExtension.Variables(reply) Trace(varia.ToString()) FIN FIN
FAIRE Erreur(ExceptionInfo()) FIN
La cible est un simulateur SNMP V1 V2 V3 écrit en python snmpsim qui peut simuler plusieurs cibles en même temps.
python snmpsimd.py --data-dir=../snmpsim/data --agent-udpv4-endpoint=127.0.0.1:1161 --- SNMPv3 USM configuration SNMPv3 USM SecurityName: simulator SNMPv3 USM authentication key: auctoritas, authentication protocol: MD5 SNMPv3 USM encryption (privacy) key: privatus, encryption protocol: DES Maximum number of variable bindings in SNMP response: 64 --- Transport configuration Listening at UDP/IPv4 endpoint 127.0.0.1:1161, transport ID 1.3.6.1.6.1.1.0
et voici les réponses que j'obtiens aux requêtes SNMP v1 et V3 lancées dans Windev :
Variable: Id: 1.3.6.1.2.1.1.1.0; Data: Linux zeus 4.8.6.5-smp #2 SMP Sun Nov 13 14:58:11 CDT 2016 i686 Variable: Id: 1.3.6.1.2.1.1.1.0; Data: ProCurve J9021A Switch 2810-24G, revision N.11.75, ROM N.10.01 (/sw/code/build/bass)
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Posté le 14 novembre 2021 - 09:33 |
Merci beaucoup, cela va beaucoup m'aider.
J'ai une autre question, sur les mib, j'ai l'impression que windev est capable de lire que les mib pour la v1 , mais c'est pas précisé... est-ce que tu aurais l'info ? Je suis sur les fichier MIB du constructeur watchguard et il semble pas pouvoir les exploiter, ou je m'y prend pas bien (mais ca fonctionne avec d'autre mibv1) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages Popularité : +183 (185 votes) |
|
Posté le 15 novembre 2021 - 07:38 |
hello, avec quelle MIB de watchguard as-tu des problèmes ? avec ce code :
MIBChargé est un booléen CheminMIBs est une chaîne = "d:\temp\mibs\" Mib est une chaîne Mib = "WATCHGUARD-MIB.mib" MIBChargé = SNMPChargeMIB(CheminMIBs + Mib) SI MIBChargé = Faux ALORS Erreur("Erreur MIB :" + ErreurInfo()) SINON Trace(SNMPOIDVersChaîne("1.3.6.1.4.1.3097.1.4.6")) FIN
j'obtiens :
iso.org.dod.internet.private.enterprises.watchguard.wgProducts.fbXSeries.fbX1000
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Posté le 29 avril 2024 - 14:13 |
Re,
j'ai mis que 3 ans a répondre
En fait il y a un bug sur les import de mib avec les fonction windev , et je pense que c'est pour ca qu'on pas récupérer le type de l'oid. Dans ton exemple, on peu aussi s'appuyer sur les MIB et pouvoir voir le type de la variable ? |
| |
| |
| | | |
|
| | |
| |
Posté le 10 mai 2024 - 10:29 |
Bonjour,
J'ai réessayer le code et ca fonctionne pas, je n'ai pas l'habitude des import de .net , du coup je comprens pas trop comment interpréter ce qu'il attend maListeVariable est une "List<Variable>" -> il manque quelque chose, il me souligne en rouge le terme maVariable est une "Lextm.SharpSnmpLib".Variable((monOid)) -> mauvais parametre pour le constructeur et dans la doc si ct en .net ce serait : new List<Variable>{new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.1.0"))}, 60000);
Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 912 messages Popularité : +227 (347 votes) |
|
Posté le 10 mai 2024 - 14:01 |
Bonjour, Pour plus d'info il faudrait que tu te réfères à la doc c# entre autre List, ICollection et IEnumération. List peut être comparé à un tableau associatif de classe. En ce qui concerne "new", cela correspond à "allouer"
-- Il y a peut être plus simple, mais, ça tourne Quand tout a échoué, utilise l'option RTFMMessage modifié, 10 mai 2024 - 14:02 |
| |
| |
| | | |
|
| | | | |
| | |
|