0

Python で net-snmp を使用してエラー (タイムアウトなどによる) をキャッチすることは可能ですか?

私はこのコードを使用しています:

import netsnmp
import pprint

session = netsnmp.Session(Version = 2, DestHost='192.168.0.1', 
          Community='public', Timeout=10000, Retries=1, UseNumeric=1)
oid_obj = netsnmp.VarList(netsnmp.Varbind('.1.3.6.1.2.1.2.2.1.1'))
value_obj = session.walk(oid_obj)

# print the result and the error codes:
pprint.pprint(value_obj)
print("Error status: ", session.ErrorStr, session.ErrorNum, session.ErrorInd)

タイムアウトが短いため、不完全な結果が得られます-これは問題ありません(タイムアウトはマイクロ秒単位であることに注意してください)。うまくいかないのは、エラーが表示されないことです。

('1001', '1002', '1003')
('Error status: ', '', 0, 0)

私は間違った場所を探していますか?

これは私が使用しているものです:(Debianパッケージとしてインストールされています)

Package: libsnmp-python                  
Version: 5.4.3~dfsg-2
Homepage: http://net-snmp.sourceforge.net/

どの SNMP ライブラリを使用すればよいか (Net-SNMP がエラーを適切に処理しない場合) について、助けやアドバイスをいただければ幸いです。

4

3 に答える 3

1

5.4.4 より前のバージョンでは、Net-SNMP python バインディングにバグがありました (エラー コードが返されませんでした)。アップグレードにより問題が解決されました。それが誰かを助けることを願っています。

于 2012-04-02T13:05:17.220 に答える