SNMPHelper

Являє собою шар абстракції для взаємодії з різноманітними пристроями за допомогою SNMP. Поведінка трішечки керується відповідними опціями SNMP_* в alter.ini.

Ініціалізація:

  $snmp=new SNMPHelper();

Типу робимо walk:

    $ip = '192.168.0.151';
    $community = 'public';
    $oid = '.1.3.6.1.2.1.1.1.0';
    $cache = true;
    $result = $snmp->walk($ip, $community, $oid, $cache);

Ну або в один рядок, якщо так простіше сприймати:

    $result = $snmp->walk('192.168.0.151', 'public', '.1.3.6.1.2.1.1.1.0', true);

І отримуємо в result на вихлопі sysDescr. Оскільки версія хост-системи в нашому прикладі у нас змінюється не щомиті, ми можемо вільно покладатися на кешовані дані. Там де нам потрібно отримувати дані realtime, природно, краще використовувати кеш у false. Але здебільшого на практиці ми робимо періодичні опитування обладнання і хочемо надалі використовувати ці результати десь. Тобто приклад із кешем у true з нашого прикладу є в цьому контексті повністю валідним. Ось ми типу отримали версію системи пристрою, а потім хочемо її десь показати. У такому разі, за наявності кешованих даних наш walk() для цього ж пристрою з цим же OID-ом миттєво поверне ці дані з кешу, не роблячи чергового безглуздого запиту. Якщо ж кеш відсутній або вже протух за часом - він їх запитає, і закешує для своїх наступних викликів на час з опції SNMPCACHE_TIME. Коротше це все просто про швидкодію і юзабіліті.

Типу робимо set:

    $ip = '192.168.0.151';
    $community = 'private';
 
 
    $data[] = array(
        'oid' => '.1.3.6.1.2.1.1.6.0',
        'type' => 's',
        'value' => 'some location'
    );
 
 
    $resut = $snmp->set($ip, $community, $data);

І загалом так, це все, що вам у базі потрібно знати про цей клас. Ми ж обіцяли, що все буде до неподобства просто? ;)