2014-09-12 118 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 
    
    相關問題