1

こんにちは、pysnmp で json を oid の配列として使用する方法を探しています。現在、私の inout データは次のようになっています。

(
    # 1-st target (SNMPv1 over IPv4/UDP)
    ( cmdgen.CommunityData('public', mpModel=0),
      cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # 2-nd target (SNMPv2c over IPv4/UDP)
    ( cmdgen.CommunityData('public'),
      cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # 3-nd target (SNMPv3 over IPv4/UDP)
    ( cmdgen.UsmUserData('usr-md5-des', 'authkey1', 'privkey1'),
      cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # 4-th target (SN MPv3 over IPv6/UDP)
    ( cmdgen.UsmUserData('usr-md5-none', 'authkey1'),
      cmdgen.Udp6TransportTarget(('::1', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # N-th target
    # ...
)

そして私はそれを次のように呼びます:

for authData, transportTarget, varNames in targets:
    acmdGen.getCmd(
        authData, transportTarget, varNames,
        # User-space callback function and its context
        (cbFun, (authData, transportTarget)),
        lookupNames=True, lookupValues=True
    )

誰かがサンプルを提供できれば素晴らしいでしょう。

4

0 に答える 0