0
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from pysnmp.entity.rfc3413.oneliner import cmdgen
def cbFun(sendRequestHandle, errorIndication, errorStatus, errorIndex, varBinds, cbCtx):
    print varBinds

def main():
    ip = '127.0.0.1'
    cmdGen = cmdgen.CommandGenerator()
    errorIndication, errorStatus, errorIndex, varBinds = cmdGen.nextCmd(
        cmdgen.CommunityData('mymypub')
        cmdgen.UdpTransportTarget((ip, 161)),
        '1.3.6.1.2.1.17.7.1.2.2.1.2')
    #varBinds have about 200 elements
    print varBinds

    cmdGen = cmdgen.AsynCommandGenerator()
    cmdGen.asyncNextCmd(
        cmdgen.CommunityData('mymypub'),
        cmdgen.UdpTransportTarget((ip, 161)),
        ((1,3,6,1,2,1,17,7,1,2,2,1,2),),
        (cbFun, ip))
    cmdGen.snmpEngine.transportDispatcher.runDispatcher()
    #varBinds have 1 element
if __name__ == '__main__':
    main()

CommandGeneratorのすべての要素を取得します。しかし、私はAsynCommandGeneratorに1つの要素しか持っていません。どうすればそれらすべてを入手できますか?

4

1 に答える 1

1

別のGETNEXTを実行するには、cbFun()はTrueを返すことによってそれを要求する必要があります。それ以外の場合、次のGETNEXTはAsynCommandGeneratorによって実行されません。

関連する例を参照してください

于 2013-01-29T17:17:27.047 に答える