我正在尝试在某些网络设备上执行snmp漫游。
在某些联网设备上,我成功地浏览了所有设备OID,而在某些网络设备上,我没有成功地浏览所有设备OID。
这是我的代码:
cmdGen = cmdgen.AsynCommandGenerator()
cmdGen.asyncNextCmd(
cmdgen.CommunityData('public', mpModel=0),
cmdgen.UdpTransportTarget(('ip', 161),timeout=timeout,retries=retries),
((1,3),),
(cbFun_Walk, None))
cmdGen.snmpEngine.transportDispatcher.runDispatcher()
问题是,有时asyncCommandGenerator在某个oid上获得超时,并且存在于线程之外。在
如您所见,线程到达某个oid,出现超时错误,然后退出线程。
因此,我想知道即使到达超时oid,如何继续snmpwalk。
基本上,如果asyncCommandGenerator到达超时的oid,它应该继续遍历并获取其余的oid。
我怎么能做到这一点?在
从逻辑上讲,您不能在请求超时时跳过“next”OID,因为那时您将不知道下一个OID是什么。我可以在这里看到两个解决方案:
相关问题 更多 >
编程相关推荐