snmp2_set

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_setУстанавливает значение объекта SNMP

Описание

function snmp2_set(
    string $hostname,
    string $community,
    array|string $object_id,
    array|string $type,
    array|string $value,
    int $timeout = -1,
    int $retries = -1
): bool

snmp2_set() используется для установки значения объекта SNMP, указанного в object_id.

Список параметров

hostname
Имя хоста агента (сервера) SNMP.
community
Write-сообщество.
object_id
Идентификатор объекта SNMP.
type
База управляющей информации MIB определяет для каждого объекта тип идентификатора. Тип указывается одним символом из следующего списка.
Типы
=Функция возьмёт тип из базы MIB
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS
Следующие типы также допустимы, если при компиляции библиотеки SNMP определили опцию OPAQUE_SPECIAL_TYPES:
Типы
Uunsigned int64
Isigned int64
Ffloat
Ddouble
Бо́льшая часть этих значений использует очевидный тип, который соответствует типу стандарта ASN.1. 's', 'x', 'd' и 'b' — это все разные способы указания значения OCTET STRING, а беззнаковый тип 'u' также указывают для обработки значений Gauge32. Разрешается указывать тип '=' как значение параметра type для каждого идентификатора объекта, если MIB-файлы загружаются в MIB-дерево функцией snmp_read_mib или путём указания в конфигурационном файле библиотеки libsnmp, поскольку тогда функция автоматически считает тип из базы 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
Новое значение.
timeout
Время ожидания в микросекундах.
retries
Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

Если хост SNMP отклоняет тип данных, выводится ошибка уровня E_WARNING вроде "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length.". Если указан неизвестный или недопустимый OID, вероятно, выведется предупреждение "Could not add variable".

Список изменений

Версия Описание
8.5.0 Теперь функция выбрасывает исключение ValueError, когда длина имени хоста равна или превышает 128 байт, когда порт отрицательный или превышает 65535, либо когда значения timeout или retries меньше -1 или слишком большие.

Примеры

Пример #1 Пример использования snmp2_set()

<?php
snmp2_set
("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Пример #2 Пример использования snmp2_set() для установки BITS идентификатору объекта SNMP

<?php
snmp2_set
("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// или
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Смотрите также

Добавить

Примечания пользователей 1 note

up
1
jhuebel at gmail dot com
15 years ago
The "type" parameter must be one of the following, depending on the type of variable to set on the SNMP host:

i    INTEGER
u    unsigned INTEGER
t    TIMETICKS
a    IPADDRESS
o    OBJID
s    STRING
x    HEX STRING
d    DECIMAL STRING

If OPAQUE_SPECIAL_TYPES was defined while compiling the SNMP library, the following are also valid:

U    unsigned int64
I    signed int64
F    float
D    double
To Top