PHP Настраивает SNMP без загрузки MIB


Я скомпилировал php с поддержкой snmp, и когда я выполняю strace на php, я получаю много следующего, показывая, что он пытается проанализировать каждый файл MIB. Можно ли скомпилировать php с включенными методами snmp3_get/snmp3_set, но так, чтобы он не выводил все это?

$> 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
...

Все вызовы SNMP, которые я буду выполнять, будут выполняться путем прямого вызова полного OID, и поэтому нет необходимости анализировать эти файлы

 2
Author: nicknisi, 2011-08-01

1 answers

Обычно приложения net-snmp считывают файлы MIB либо из жестко заданного списка каталогов, либо из списка каталогов, содержащихся в переменной среды MIBDIRS.

Очень простой и быстрый способ взлома, гарантирующий, что файлы MIB не анализируются, - это переопределить переменную среды MIBDIRS, чтобы указать на каталог, которого не существует, перед вызовом функций для инициализации net-snmp в вашем приложении.

 2
Author: Andrew Edgecombe, 2011-08-02 02:05:51