2017-02-20 6 views
0

独自MIBのGETクエリの結果は、(None、None、None、[])でした。 この結果の意味は?カスタムMIBのSnmp GETクエリの結果を理解できません

これはPythonスクリプトです:)私もContextDataを(追加しようとした

>>> 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, []) 

行方不明になったことと:私はデバッグ行を追加し、以下の結果を持っている

>>>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: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を.py形式に変換するために他のMIBファイルを使用していたという事実が、私のMIBを何とか変更したのでしょうか? httpソースを使わずにMIBツリー全体でmibdump.py変換をうまくやるべきだと思いませんか?

答えて

0

TL; RD;

errorIndication, errorStatus, errorIndex, varBinds = next(
    getCmd(SnmpEngine(), 
     CommunityData('public'), 
     UdpTransportTarget(('demo.snmplabs.com', 161)), 
     ContextData(), 
     ObjectType(ObjectIdentity('1.3.6.1.2.1.1.1.0')), 
     ObjectType(ObjectIdentity('1.3.6.1.2.1.1.6.0'))) 

)あなたはexamplesまたはdocumentationで見ることができるよう

:あなたはcontextDataパラメータが欠落しています。

得タプルerrorIndicationerrorStatuserrorIndexにアンパック、varBinds成分:

  • 非偽errorIndicationは、ローカルまたはリモートSNMPエンジンからのハードエラーを明示する
  • 非偽errorStatusのいずれかを示しますリモートSNMPエンジンからのあらかじめ定義されたSNMPエラーコード
  • varBindsは、要求に応じてリモートSNMPエンジンによって送信されるOID値ペアのシーケンスです

(None, None, None, [])リターンは、リモートSNMPエンジンがOIDと値のペアを応答PDUに入れないように見えます。それを把握するために、私はpysnmpのデバッグをオンにしたい:

from pysnmp.debug import setLogger, Debug 

setLogger(Debug('msgproc', 'secmod')) 

があなたから出て何が起こっているか、リモートエンドからの応答に来ているかを確認します。

私は、OIDパラメータを誤って配置しているので、空のOID値リストを効果的に送信して、リモートエンドが何も返さないようにしていると思います。

+0

ご迷惑をおかけして申し訳ありません(私はこの地域で新しくなっています)。デバッグ部分はスクリプトのどこにあるべきですか? –

+0

@ MosheS.あなたはどこにでも置くことができます - デバッグメッセージは 'setLogger'関数が実行されてからstderrに表示されます。通常は、スクリプトの先頭にあります。 –

関連する問題