我正在使用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检索超时时间较短(非默认)吗?

10-04 18:11