snmp_read_mib

(PHP 5, PHP 7, PHP 8)

snmp_read_mib将 MIB 文件读取并解析到活动 MIB 树中

说明

snmp_read_mib(string $filename): bool

此函数用于加载额外的 MIB,例如供应商特定的 MIB,以便可以使用人类可读的 OID(如 VENDOR-MIB::foo.1)而不是容易出错的数字 OID。

加载 MIB 的顺序很重要,因为底层的 Net-SNMP 库将在无法解析引用的对象时打印警告。

参数

filename

MIB 文件名。

返回值

成功时返回 true,失败时返回 false

示例

示例 #1 使用 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') );
?>

上面的例子是虚构的,但结果看起来像这样

Array
(
    [iso.3.6.1.2.1.2.3.4.5.0] => Gauge32: 6
)
Array
(
    [FOO-BAR-MIB::someTable.0] => Gauge32: 6
)

添加笔记

用户贡献笔记 2 notes

jdhall75 at yahoo dot com
16 年前
如果您尝试导入依赖于其他 MIB 的 MIB,则必须设置 MIBDIRS 环境变量。

Unix / Linux:export MIBDIRS=/home/<user>/MIBS:/usr/share/snmp/mibs
Windows:祝您好运!不,真的。试试这个 URL,它包含了有关在 Windows 中设置环境变量的所有必要信息。

http://vlaurie.com/computers2/Articles/environment.htm
ptitgal at hotmail dot com
18 年前
导入位于目录中的大量 MIB
<?php
/******************** 加载 MIB **************/
$mib_path='YourPath';
if (
$handle = opendir($mib_path))
{ echo
"目录句柄: $handle <br>";
echo
"文件: <br>";
while (
false !== ($file = readdir($handle)))
{ if(
$file!='.')
{ if(
$file!='..')
{ echo
"读取: ";
echo
"$mib_path.$file";
if(
snmp_read_mib($mib_path.'\\'.$file)) echo " 成功 <br>";
else echo
" 失败 <br>";
}
}
}
}
closedir($handle);

?>
To Top