我正在尝试构建一个客户端,以便使用snmp4j从启用snmp的设备中获取值。使用OID和索引号,我可以获取设备的名称和序列号。但我听说指数不是固定的,它一直在变化。您可能会在SNMP中找到所需的索引号(例如,网络接口),有时我们可能不会完全依赖始终保持不变的索引号。
索引编号可能是动态的--它们可能会随着时间的推移而变化,因此您的项目可能会停止工作。
因此,我需要找到一种方法来动态地获取索引号。或者有什么办法,我可以得到序列号,而不硬编码序列号。
一个OID可能有150个索引号,每个索引号都有不同的值。我需要从那张桌子上得到一个特别的信息。
发布于 2014-04-03 07:38:29
(不幸的是)指数的变化并不罕见。例如,一些设备在重新启动时会重新订购一些表.
您可能已经意识到,如果索引值是不稳定的,您将无法在一个请求中获取数据。但你可以通过“走”桌子来做。
使用GetNextRequest,您可以从列标题开始,然后继续遍历表,获取所有数据或单个列。有关更详细的示例,请参见RFC 1905:https://www.rfc-editor.org/rfc/rfc1905的4.2.2.1节。
假设表中有一列将标识正确的卡,则可以:
https://stackoverflow.com/questions/22448911
复制相似问题