PHP在不加载MIB​​的情况下配置SNMP

时间:2011-08-01 19:52:18

标签: php snmp

我已经使用snmp支持编译了php,当我在php上执行一个strace时,我得到了很多以下内容,表明它正在尝试解析每个MIB文件。是否可以在启用snmp3_get / snmp3_set方法的情况下编译php,但是它不会输出所有这些?

$> strace php -v

...
open("/usr/local/share/snmp/mibs/SNMPv2-TM.txt", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=5775, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7645000
read(3, "SNMPv2-TM DEFINITIONS ::= BEGIN\n"..., 4096) = 4096
read(3, "'n' as an unsigned integer\n     "..., 4096) = 1679
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7645000, 4096)                = 0
open("/usr/local/share/snmp/mibs/NET-SNMP-VACM-MIB.txt", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=5039, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7645000
read(3, "NET-SNMP-VACM-MIB DEFINITIONS ::"..., 4096) = 4096
read(3, "across\n                 all nsVa"..., 4096) = 943
read(3, "", 4096)                       = 0
close(3)                                = 0
...

我将通过直接调用完整的OID来进行所有SNMP调用,因此无需解析这些文件

1 个答案:

答案 0 :(得分:2)

通常,net-snmp应用程序将从硬编码的目录列表或MIBDIRS环境变量中包含的目录列表中读取MIB文件。

一种非常简单,快速的黑客,确保不解析MIB文件的方法是在调用函数初始化应用程序中的net-snmp之前,覆盖MIBDIRS环境变量以指向不存在的目录