检查设备是否有snmp对象而不等待超时?

时间:2015-02-23 17:23:55

标签: java snmp snmp4j

我正在使用snmp4j来收集POE(以太网供电)端口的功耗。但有些设备不支持POE。当我去询问这些设备的功耗时,他们最终会超时。

等待超时会在网页上显示信息时造成不良延迟。

我不认为有一个普遍可用的对象可以告诉你设备是否支持POE,所以我想知道是否有办法询问设备是否存在一个对象而没有实际请求该对象然后等待超时。

1 个答案:

答案 0 :(得分:2)

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检索超时?