Являє собою шар абстракції для взаємодії з різноманітними пристроями за допомогою 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);
І загалом так, це все, що вам у базі потрібно знати про цей клас. Ми ж обіцяли, що все буде до неподобства просто? ;)