java - 无需等待超时即可检查设备是否有 snmp 对象?

标签 java snmp snmp4j

我正在使用 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 是:

"The (conceptual) table listing the capabilities of the local SNMP application acting as a command responder with respect to various MIB modules. SNMP entities having dynamically-configurable support of MIB modules will have a dynamically-varying number of conceptual rows."

以下是我对标准 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 检索超时吗?

关于java - 无需等待超时即可检查设备是否有 snmp 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28679573/

相关文章:

php - 使用 PHP 生成 SNMP 陷阱

java - 如何使用 snmp4j 发送带有 enginedId 的 v3 陷阱

java - 从 SNMP4j 陷阱接收器获取目标 IP 地址

SNMP GETBULK 问题 : Only could get parts records(Such as 59 records, 但有超过 100 条记录)

java - 如何从 Java Web 应用程序发送电子邮件

java - 成功创建项目构建后,Jenkins 显示错误

android - Android 是否支持 SNMP?

java - Tomcat 关闭失败并出现内存错误

java - 是否有任何不同级别的同步?

SNMP OID : How to find the firmware version of a cisco switch from MIB