2014-09-12 119 views
0

我正在研究一个涉及SNMP的项目。基本上我需要在PHP中构造MIB和OID树。如何通过使用PHP从远程服务器获取MIB列表?

我知道有些程序已经这样做了,但我正在尝试实现我自己的版本以与我的webapp结合。

我所知道的:我熟悉php的SNMP功能。我可以使用SNMPWALk来获取OID等。不幸的是,我没有找到找到所有MIB并解析它们的函数。

我需要什么: 获取所有MIB文档首先从远程服务器,然后根据每个文档得到他们的对象。 在结束我的树都会有这样的结构:

+ mib-doc1 | 
      - obc1 
      - obj2 
+ mib-doc2 | 
      - obj1 
      - obj2 
      - obj3 

等等...

我也知道

  1. 从实际的服务器,我可以得到所有的MIB目录:

$ net-snmp-config --defaul T-mibdirs

  • 我还可以得到所有MIB文档的列表:
  • $ snmpwalk的-mall -v1 cpublic IP

    我有2个问题。

    1. 如何从远程服务器获取所有MIB文档的列表?
    2. 有没有一种更简单的方法(与已知函数),来解析每个MIB来获取对象?

    感谢

    回答

    1

    如果你只想模块列表,请参阅如果经理支持的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 
    
    相关问题