snmp3_set

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Описание

function snmp3_set(
    string $hostname,
    string $security_name,
    string $security_level,
    string $auth_protocol,
    string $auth_passphrase,
    string $privacy_protocol,
    string $privacy_passphrase,
    array|string $object_id,
    array|string $type,
    array|string $value,
    int $timeout = -1,
    int $retries = -1
): bool

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

Даже если уровень безопасности не использует протокол авторизации или пароль, необходимо указать корректные значения.

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

hostname

Имя хоста агента (сервера) SNMP.

security_name

Имя безопасности, обычно какое-то имя пользователя.

security_level

Уровень безопасности (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Протокол аутентификации (MD5 или SHA).

auth_passphrase

Пароль для аутентификации.

privacy_protocol

Протокол конфиденциальности (DES или AES).

privacy_passphrase

Пароль конфиденциальности.

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 Пример использования snmp3_set()

<?php
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifAlias.3', 's', "foo");
?>

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

<?php
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// или
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'x', 'F0');
?>
Добавить

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

Пользователи ещё не добавляли примечания для страницы