我正在使用snmp4j收集POE(以太网电源)端口上的功耗。但是某些设备不支持POE。当我去询问这些设备的功耗时,它们最终会超时。
等待超时会对在网页上显示信息造成不希望的延迟。
我认为没有通用的对象可以告诉您设备是否支持POE,所以我想知道是否存在一种方法来询问设备是否存在对象,而无需实际请求该对象然后等待超时。
最佳答案
1)某些设备将支持SNMPv2-MIB::sysORTable
;可能您可以检索它,并在尝试检索POE数据之前查看是否存在带POE的MIB(假设此处是POE检索较慢而不是SNMP往返!)
引用How can I get MIBs list from a remote server by using PHP? sysORTable
为:
“(概念性)表列出了
本地SNMP应用程序充当命令响应者
各种MIB模块。具有可动态配置的SNMP实体
对MIB模块的支持将具有动态变化的数量
概念行。”
这是我获得的标准Linux主机的信息:
snmptable -M +. -m +ALL -v 2c -c public -Pu -Ci <some ipaddr> SNMPv2-MIB::sysORTable
SNMP table: SNMPv2-MIB::sysORTable
index sysORID sysORDescr sysORUpTime
1 SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1 The MIB for Message Processing and Dispatching. 0:0:00:00.30
// SNIP
6 IP-MIB::ip The MIB module for managing IP and ICMP implementations 0:0:00:00.30
7 UDP-MIB::udpMIB The MIB module for managing UDP implementations 0:0:00:00.30
8 SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup View-based Access Control Model for SNMP. 0:0:00:00.30
2)或者,您可以使用当前方法,但SNMP检索超时时间较短(非默认)吗?