是否可以在 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 不能正确处理错误)。