snmp_read_mib()
(PHP 5, PHP 7)
Reads and parses a MIB file into the active MIB tree
说明
snmp_read_mib(string $filename): bool
This function is used to load additional, e.g. vendor specific, MIBs so that human readable OIDs like VENDOR-MIB::foo.1 instead of error prone numeric OIDs can be used.
The order in which the MIBs are loaded does matter as the underlying Net-SNMP libary will print warnings if referenced objects cannot be resolved.
参数
- $filename
The filename of the MIB.
范例
Example #1 Using snmp_read_mib()
<?php print_r( snmprealwalk('localhost', 'public', '.1.3.6.1.2.1.2.3.4.5') ); snmp_read_mib('./FOO-BAR-MIB.txt'); print_r( snmprealwalk('localhost', 'public', 'FOO-BAR-MIB::someTable' ); ?>
The above example is made up but the results would look like:
Array ( [iso.3.6.1.2.1.2.3.4.5.0] => Gauge32: 6 ) Array ( [FOO-BAR-MIB::someTable.0] => Gauge32: 6 )
If you are trying to import mibs with dependencies on other mibs you will have to set the MIBDIRS environment variable. Unix / Linux: export MIBDIRS=/home/<user>/MIBS:/usr/share/snmp/mibs Window: Good luck! No really. Try this url out. It has everything that you need to know about setting environment vars in windows. http://vlaurie.com/computers2/Articles/environment.htm
Importing massive Mibs located in a directory <?php /******************** Loading Mibs **************/ $mib_path='YourPath'; if ($handle = opendir($mib_path)) { echo "Directory handle: $handle <br>"; echo "Files: <br>"; while (false !== ($file = readdir($handle))) { if($file!='.') { if($file!='..') { echo "Read : "; echo "$mib_path.$file"; if(snmp_read_mib($mib_path.'\\'.$file)) echo " Succesful <br>"; else echo " Failed <br>"; } } } } closedir($handle); ?>