snmp2_set
(PHP >= 5.2.0, PHP 7, PHP 8)
snmp2_set — Set the value of an SNMP object
Опис
snmp2_set() is used to set the value of an SNMP object
specified by the object_id.
Параметри
hostname
-
The hostname of the SNMP agent (server).
community
-
The write community.
object_id
-
The SNMP object id.
type
-
MIB дає означення типу для ID об'єкта. Тип можна
вказувати одним з символів:
types
| = | Тип, взятий з MIB |
| i | INTEGER |
| u | INTEGER |
| s | STRING |
| x | HEX STRING |
| d | DECIMAL STRING |
| n | NULLOBJ |
| o | OBJID |
| t | TIMETICKS |
| a | IPADDRESS |
| b | BITS |
Якщо під час компіляції бібліотеки SNMP задано
OPAQUE_SPECIAL_TYPES, будуть доступні наступні типи:
types
| U | беззнаковий int64 |
| I | знаковий int64 |
| F | десятковий дріб (float) |
| D | десятковий дріб подвійної точності (double) |
Більшість з них мають зрозумілий ASN.1-тип. "s", "x", "d" та "b" вказують на
один тип — OCTET STRING, а беззнаковий тип "u" використовується для обробки
значень Gauge32.
Якщо MIB-файли підключені до дерева MIB, бо вказані в налаштуваннях libsnmp або
за допомогою "snmp_read_mib", то потрібно задавати параметр
type зі значенням "=" для усіх ID об'єктів,
оскільки тип можна автоматично зчитувати з MIB.
Варто зазначити, що є два способи задати значення змінній, яка має тип BITS, як
от "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
-
Використавши тип "b" та список бітових чисел. Цей спосіб не рекомендований,
оскільки на GET-запит для однакових OID може бути відповідь, напр., 0xF8.
-
Використавши тип "x" та шістнадцяткове число, проте без(!) звичного префікса
"0x".
Докладніше це описано у параграфі з прикладами.
value
-
The new value.
timeout
-
The number of microseconds until the first timeout.
retries
-
The number of times to retry if timeouts occur.
Значення, що повертаються
Повертає true у разі успіху або false в разі помилки.
If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown.
If an unknown or invalid OID is specified the warning probably reads "Could not add variable".
Приклади
Приклад #1 Using snmp2_set()
<?php
snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>
Приклад #2 Using snmp2_set() for setting BITS SNMP object id
<?php
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>