Результатом запроса GET на фирменной MIB было: (None, None, None, []). В чем смысл этого результата?Я не могу понять результат запроса SNMP GET для моего настраиваемого MIB
Это питон скрипт:
>>>g= getCmd(SnmpEngine(),
... CommunityData('admin'),
... UdpTransportTarget(('10.0.1.134', 161)),
... '1.3.6.1.4.1.4515.1.8.1.1.1.8.1295360.1295360'
)
>>>next(g)
(None, None, None, [])
Я добавил отладки линии и получили следующий результат:
>>> from pysnmp.hlapi import *
>>> from pysnmp.debug import setLogger, Debug
>>>
>>> setLogger(Debug('msgproc', 'secmod'))
2017-02-21 10:27:44,322 pysnmp: running pysnmp version 4.3.2
2017-02-21 10:27:44,322 pysnmp: debug category 'msgproc' enabled
2017-02-21 10:27:44,322 pysnmp: debug category 'secmod' enabled
>>>
>>>
>>> g= getCmd(SnmpEngine(),
... CommunityData('admin'),
... UdpTransportTarget(('10.0.1.134', 161)),
... '1.3.6.1.4.1.4515.1.8.1.1.1.8.1295360.1295360'
... )
>>> next(g)
(None, None, None, [])
Я даже пытался добавить ContextData(), который отсутствует, и получил следующий результат:
>>> from pysnmp.hlapi import *
>>> from pysnmp.debug import setLogger, Debug
>>> setLogger(Debug('msgproc', 'secmod'))
2017-02-21 10:29:41,640 pysnmp: running pysnmp version 4.3.2
2017-02-21 10:29:41,640 pysnmp: running pysnmp version 4.3.2
2017-02-21 10:29:41,640 pysnmp: debug category 'msgproc' enabled
2017-02-21 10:29:41,640 pysnmp: debug category 'msgproc' enabled
2017-02-21 10:29:41,640 pysnmp: debug category 'secmod' enabled
2017-02-21 10:29:41,640 pysnmp: debug category 'secmod' enabled
>>> g= getCmd(SnmpEngine(),
... CommunityData('admin'),
... UdpTransportTarget(('10.0.1.134', 161)),
... ContextData(),
... '1.3.6.1.4.1.4515.1.8.1.1.1.8.1295360.1295360'
...)
>>> next(g)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python35\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\hlapi\asyncore\sync\cmdgen.py", line 107, in getCmd
File "C:\Program Files\Python35\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\hlapi\asyncore\cmdgen.py", line 127, in getCmd
File "C:\Program Files\Python35\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\hlapi\varbinds.py", line 36, in makeVarBinds
File "C:\Program Files\Python35\lib\site-packages\pysnmp-4.3.2-py3.5.egg\pysnmp\smi\rfc1902.py", line 845, in resolveWithMib
pysnmp.smi.error.SmiError: MIB object ObjectIdentity('1') is not OBJECT-TYPE (MIB not loaded?)
>>>
Вы видите, что я делаю неправильно? Может ли быть так, что тот факт, что я использовал другие MIB-файлы для конвертации моей собственной MIB в формат .py, каким-то образом изменил мою MIB? Не думаете ли вы, что мне лучше сделать преобразование mibdump.py по всему MIB-дереву (без использования http-источников)?
Извините за вопрос (я новичок в этом районе). Где часть отладки входит в скрипт? –
@ MosheS.You можете поместить его куда угодно - отладочные сообщения будут печататься на stderr с момента выполнения функции setLogger. Как правило, в верхней части скрипта. –