如何让pysnmp在表的末尾停止?
我用这个简单的示例,通过SNMP从交换机获取数据:
from pysnmp.hlapi import *
for (errorIndication,
errorStatus,
errorIndex,
varBinds) in nextCmd(SnmpEngine(),
CommunityData('public', mpModel=0),
UdpTransportTarget(('localhost', 161)),
ContextData(),
ObjectType(ObjectIdentity('BRIDGE-MIB', 'dot1dTpFdbPort'))):
if errorIndication or errorStatus:
print(errorIndication or errorStatus)
break
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
随后它连接到交换机,获取数据,并输出一些看起来不错的结果:
BRIDGE-MIB::dot1dTpFdbPort."f8:60:f0:c4:4f:00" = 52
但最终它会继续抓取越来越多的信息:
BRIDGE-MIB::dot1dTpFdbStatus."00:02:99:14:2b:3c" = learned
BRIDGE-MIB::dot1dTpPort.1 = 1
BRIDGE-MIB::dot1dTpPortMaxInfo.1 = 1500
BRIDGE-MIB::dot1dTpPortInFrames.1 = 2275726882
...
我只是为每张表显示一行,但它会在几分钟内吐出成千上万行内容。
如何阻止它递归进入越来越多的表?
解决方案
答案是添加 lexicographicMode=False 标志。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。