私は簡単なsnmp GETNEXTクエリを作成して、のツリー階層内の指定されたOIDの次の項目のみを検索しようとしています。例えばPySNMPで単一のGETNEXTクエリを作成する方法
は、私が欲しいのです:
iはOIDとGETNEXT要求を行うと1.3.6.1.2.1.1(iso.org.dod.internet.mgmt.mib- 2.system)
私はOID 1.3.6.1.2.1.1.1.0(iso.org.dod.internet.mgmt.mib-2.system.sysDescr含む単一応答を得ることを期待します.0)を対応する値で置き換えます。
事実である:単一の次の値を取得する
Insted、PySNMPは1.3.6.1.2.1.1下SNMPウォークを実行し、すべてのサブアイテムを検索します。
この動作を変更して、snmpwalkを実行する代わりに、ただ1つの次の値を返すようにするにはどうすればよいですか?
私はPySNMPのドキュメントから次のコードを使用します。
# GETNEXT Command Generator
from pysnmp.entity.rfc3413.oneliner import cmdgen
errorIndication, errorStatus, errorIndex, \
varBindTable = cmdgen.CommandGenerator().nextCmd(
cmdgen.CommunityData('test-agent', 'public'),
cmdgen.UdpTransportTarget(('localhost', 161)),
(1,3,6,1,2,1,1)
)
if errorIndication:
print errorIndication
else:
if errorStatus:
print '%s at %s\n' % (
errorStatus.prettyPrint(),
errorIndex and varBindTable[-1][int(errorIndex)-1] or '?'
)
else:
for varBindTableRow in varBindTable:
for name, val in varBindTableRow:
print '%s = %s' % (name.prettyPrint(), val.prettyPrint())
あなたがそう答える:あなたは(それも少し低レベルの非同期APIを使用して必要になります)、独自にpysnmpの株式応答処理機能を置き換えることであろう何をしたいことの
一つの方法Stack Overflowに関する多くの質問は、アカウントに登録するのが理にかなっているので、すべての回答を単一のユーザーIDにまとめることができます –
@Ilyaありがとう、これが私が探していたものです。 – Cankut