pysnmp 获取子树并且不根据 mib 名称解析 oid
pysnmp get subtree and do not resolve oid against mib name
我想为 pysnmp 提供一个基本的 oid,例如 1.3.6.1.2.1.2.2.1.8
,并且能够在它下面获取它的所有子级,例如 1.3.6.1.2.1.2.2.1.8.1 - 1.3.6.1.2.1.2.2.1.8.n
,而无需转到 1.3.6.1.2.1.2.2.1.9
。我想知道我会怎么做呢?我也试过做一个 GETNEXT 但不确定如何去实现我想要的。另一个问题是 pysnmp 似乎试图将 oid 解析为与之关联的 mib,我该如何关闭此功能?我目前使用的是最新版本的pysnmp。
尝试将 lookupMib=False and lexicographicMode=False 传递给 nextCmd() 或 bulkCmd():
from pysnmp.hlapi import *
for errorIndication, errorStatus, \
errorIndex, varBinds in bulkCmd(
SnmpEngine(),
CommunityData('public'),
UdpTransportTarget(('demo.snmplabs.com', 161)),
ContextData(),
0, 50, # GETBULK specific: request up to 50 OIDs in a single response
ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.8')),
lookupMib=False, lexicographicMode=False):
if errorIndication:
print(errorIndication)
break
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1][0] or '?'))
break
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
我想为 pysnmp 提供一个基本的 oid,例如 1.3.6.1.2.1.2.2.1.8
,并且能够在它下面获取它的所有子级,例如 1.3.6.1.2.1.2.2.1.8.1 - 1.3.6.1.2.1.2.2.1.8.n
,而无需转到 1.3.6.1.2.1.2.2.1.9
。我想知道我会怎么做呢?我也试过做一个 GETNEXT 但不确定如何去实现我想要的。另一个问题是 pysnmp 似乎试图将 oid 解析为与之关联的 mib,我该如何关闭此功能?我目前使用的是最新版本的pysnmp。
尝试将 lookupMib=False and lexicographicMode=False 传递给 nextCmd() 或 bulkCmd():
from pysnmp.hlapi import *
for errorIndication, errorStatus, \
errorIndex, varBinds in bulkCmd(
SnmpEngine(),
CommunityData('public'),
UdpTransportTarget(('demo.snmplabs.com', 161)),
ContextData(),
0, 50, # GETBULK specific: request up to 50 OIDs in a single response
ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.8')),
lookupMib=False, lexicographicMode=False):
if errorIndication:
print(errorIndication)
break
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1][0] or '?'))
break
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))