如果您尝试导入依赖于其他 MIB 的 MIB,则必须设置 MIBDIRS 环境变量。
Unix / Linux:export MIBDIRS=/home/<user>/MIBS:/usr/share/snmp/mibs
Windows:祝您好运!不,真的。试试这个 URL,它包含了有关在 Windows 中设置环境变量的所有必要信息。
http://vlaurie.com/computers2/Articles/environment.htm
(PHP 5, PHP 7, PHP 8)
snmp_read_mib — 将 MIB 文件读取并解析到活动 MIB 树中
此函数用于加载额外的 MIB,例如供应商特定的 MIB,以便可以使用人类可读的 OID(如 VENDOR-MIB::foo.1
)而不是容易出错的数字 OID。
加载 MIB 的顺序很重要,因为底层的 Net-SNMP 库将在无法解析引用的对象时打印警告。
filename
MIB 文件名。
示例 #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 )
如果您尝试导入依赖于其他 MIB 的 MIB,则必须设置 MIBDIRS 环境变量。
Unix / Linux:export MIBDIRS=/home/<user>/MIBS:/usr/share/snmp/mibs
Windows:祝您好运!不,真的。试试这个 URL,它包含了有关在 Windows 中设置环境变量的所有必要信息。
http://vlaurie.com/computers2/Articles/environment.htm
导入位于目录中的大量 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);
?>