Snmpwalk dans python

Salut,

j’essaye de traduire snmpwalk 10.100.2.21 -On -v 1 -c public .1.3.6.1.4.1.28507.14.1.3.1.1.2.2

qui me retourne .1.3.6.1.4.1.28507.14.1.3.1.1.2.2 = INTEGER: 225

et j’ai besoin du “225” qui n’est autre que 22.5°C :smiley:

Bref j’aimerais mettre tout ca dans un script python (j’ai pas le choix ca doit être programmé en Python) soit :

[code]#!/usr/bin/python

-- coding: latin-1 --

import netsnmp
#oid = ‘.1.3.6.1.4.1.28507.14.1.3.1.1.2.2’
oid = netsnmp.VarList(netsnmp.Varbind(’.1.3.6.1.4.1.28507.14.1.3.1.1.2.2’))
print (“Hello !!!”)
res = netsnmp.snmpwalk(oid, Version=2, DestHost=‘10.100.2.21’, Community=‘public’)
print res
[/code]

j’ai essayé plusieurs manières mais ça ne me retourne rien mise à part : "()"
Vous voyer mes anneries ?

:blush:

Salut

Si ça te renvoie un tuple (même vide) c’est certainement qu’il a réussi ce que tu lui as demandé. Sinon il t’aurai probablement levé une erreur.
Peut être qu’il y a un problème dans la version du protocole.

snmpwalk 10.100.2.21 -On [b]-v 1[/b] -c public .1.3.6.1.4.1.28507.14.1.3.1.1.2.2 res = netsnmp.snmpwalk(oid, [b]Version=2[/b], DestHost='10.100.2.21', Community='public')

sinon essaie d’afficher oid[0] avant et après netsnmp.snmpwalk(…)

ca ne fonctionne pas en version 1 non plus.

peut être je vais mettre la valeur dans un fichier texte avec un batch et je lirai la valeur en python

Je ne sais pas où tu en es de ton problème. Je ne peux pas t’aider avec snmpwalk, je ne connais absolument pas. Mais si tu veux récupérer une valeur écrite de sortie d’une tâche, il y a mieux que de l’écrire dans un fichier. Regarde le module subprocess. En particulier les PIPE.

Bon courage !