我想为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似乎试图解决与它相关的mid的oid,我该如何关闭此功能呢?我目前正在使用最新版本的pysnmp。
答案 0 :(得分:2)
尝试将lookupMib=False和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]))