如何通过使用PHP从远程服务器获取MIB列表?
问题描述:
我正在研究一个涉及SNMP的项目。基本上我需要在PHP中构造MIB和OID树。如何通过使用PHP从远程服务器获取MIB列表?
我知道有些程序已经这样做了,但我正在尝试实现我自己的版本以与我的webapp结合。
我所知道的:我熟悉php的SNMP功能。我可以使用SNMPWALk来获取OID等。不幸的是,我没有找到找到所有MIB并解析它们的函数。
我需要什么: 获取所有MIB文档首先从远程服务器,然后根据每个文档得到他们的对象。 在结束我的树都会有这样的结构:
+ mib-doc1 |
- obc1
- obj2
+ mib-doc2 |
- obj1
- obj2
- obj3
等等...
我也知道:
- 从实际的服务器,我可以得到所有的MIB目录:
$ net-snmp-config --defaul T-mibdirs
- 我还可以得到所有MIB文档的列表:
- 如何从远程服务器获取所有MIB文档的列表?
- 有没有一种更简单的方法(与已知函数),来解析每个MIB来获取对象?
$ snmpwalk的-mall -v1 cpublic IP
我有2个问题。
感谢
答
如果你只想模块列表,请参阅如果经理支持的SNMPv2-MIB :: sysORTable。这当然不会帮助您找到MIB文件,但会告诉您应该支持哪些内容。
引用规范,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
2 SNMP-USER-BASED-SM-MIB::usmMIBCompliance The MIB for Message Processing and Dispatching. 0:0:00:00.30
3 SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance The SNMP Management Architecture MIB. 0:0:00:00.30
4 SNMPv2-MIB::snmpMIB The MIB module for SNMPv2 entities 0:0:00:00.30
5 TCP-MIB::tcpMIB The MIB module for managing TCP implementations 0:0:00:00.30
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