Клас SNMP

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Вступ

Представляє сесію SNMP.

Огляд класів


     
      class SNMP
      {

     /* Константы */
     
      public
      const
      int
       VERSION_1;

     public
      const
      int
       VERSION_2c;

     public
      const
      int
       VERSION_2C;

     public
      const
      int
       VERSION_3;

     public
      const
      int
       ERRNO_NOERROR;

     public
      const
      int
       ERRNO_ANY;

     public
      const
      int
       ERRNO_GENERIC;

     public
      const
      int
       ERRNO_TIMEOUT;

     public
      const
      int
       ERRNO_ERROR_IN_REPLY;

     public
      const
      int
       ERRNO_OID_NOT_INCREASING;

     public
      const
      int
       ERRNO_OID_PARSING_ERROR;

     public
      const
      int
       ERRNO_MULTIPLE_SET_QUERIES;


     /* Свойства */
     public
      readonly
      array
       $info;

     public
      ?int
       $max_oids;

     public
      int
       $valueretrieval;

     public
      bool
       $quick_print;

     public
      bool
       $enum_print;

     public
      int
       $oid_output_format;

     public
      bool
       $oid_increasing_check;

     public
      int
       $exceptions_enabled;


     /* Методы */
     
   public __construct(    int $version,    string $hostname,    string $community,    int $timeout = -1,    int $retries = -1)

     public close(): bool
public get(array|string $objectId, bool $preserveKeys = false): mixed
public getErrno(): int
public getError(): string
public getnext(array|string $objectId): mixed
public set(array|string $objectId, array|string $type, array|string $value): bool
public setSecurity(    string $securityLevel,    string $authProtocol = "",    string $authPassphrase = "",    string $privacyProtocol = "",    string $privacyPassphrase = "",    string $contextName = "",    string $contextEngineId = ""): bool
public walk(    array|string $objectId,    bool $suffixAsKey = false,    int $maxRepetitions = -1,    int $nonRepeaters = -1): array|false

    }

Властивості

max_oids

Максимальний OID для запитів GET/SET/GETBULK

valueretrieval

Контролює спосіб, як повертатимуться значення SNMP

SNMP_VALUE_LIBRARYПовертані значення будуть такими, ніби повернуті бібліотекою Net-SNMP.
SNMP_VALUE_PLAINПовертані значення будуть простими, без інформації про типи SNMP.
SNMP_VALUE_OBJECTПовертані значення будуть об'єктами з властивостями "value" і "type", де "type" міститиме одну з констант: SNMP_OCTET_STR, SNMP_COUNTER і т.д., а "value" буде залежати від того, чи встановлено SNMP_VALUE_LIBRARY або SNMP_VALUE_PLAIN.

quick_print

Значениеquick_printв библиотеке NET-SNMP

Устанавливает значениеquick_print у бібліотеці NET-SNMP. якщо задано як (1), бібліотека SNMP повертатиме значення 'quick printed'. Це означає, що буде надруковано лише значення. Якщо quick_print не дозволено (за замовчуванням), бібліотека NET-SNMP друкуватиме додаткову інформацію, включаючи тип значення (тобто IpAddress або OID). Додатково якщо quick_print не дозволено, бібліотека друкуватиме шістнадцяткові значення для всіх рядків коротше чотирьох символів.

enum_print

Контролює спосіб, яким будуть друкуватись значення перерахувань

Параметр перемикає поведінку walk/get і т.д., щоб вони автоматично дивилися значення перерахувань у MIB та повертали їх разом із зрозумілим людині текстом.

oid_output_format

Контролює формат виводу OID

OID-подання .1.3.6.1.2.1.1.3.0 для різних значень oid_output_format
SNMP_OID_OUTPUT_FULL.iso.org.dod.internet.mgmt.mib -2.system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NUMERIC.1.3.6.1.2.1 .1.3.0
SNMP_OID_OUTPUT_MODULEDISMAN-EVENT-MIB::sysUpTimeInstance
SNMP_OID_OUTPUT_SUFFIXsysUpTimeInstance
< strong>SNMP_OID_OUTPUT_UCDsystem.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NONEUndefined

oid_increasing_check

Контролює заборону на перевірку збільшення OID під час обходу дерева OID

Деякі агенти SNMP відомі тим, що OID повертають не по порядку, але все одно завершують прохід. Інші агенти, що повертають OID не по порядку і можуть викликати нескінченне зациклювання SNMP::walk(), поки не буде вичерпано всю пам'ять. Бібліотека PHP SNMP за замовчуванням здійснює перевірку збільшення OID і припиняє обхід дерева, якщо визначає можливе кільце, видаючи відповідне попередження. Встановіть oid_increasing_check в значение**false** для заборони перевірки.

exceptions_enabled

Контролює, у яких випадках викидаються винятки SNMPException замість попереджень. Використовуйте побітове АБО з констант SNMP::ERRNO_*. За промовчанням SNMP не викидає виняток.

info

Властивість доступна тільки для читання, що містить конфігурацію віддаленого агента: ім'я хоста, порт, час за замовчуванням, кількість повторів за замовчуванням

Обумовлені константи

Типи помилок SNMP

SNMP::ERRNO_NOERROR

Помилки SNMP відсутні.

SNMP::ERRNO_GENERIC

Загальна помилка SNMP.

SNMP::ERRNO_TIMEOUT

Перевищено час очікування запиту до SNMP-агенту.

SNMP::ERRNO_ERROR_IN_REPLY

SNMP-агент повернув помилку у відповідь.

SNMP::ERRNO_OID_NOT_INCREASING

SNMP-агент виявив можливе закольцювання через незбільшення OID під час виконання команд (BULK)WALK. Говорить нам, що віддалений SNMP-агент фіктивний.

SNMP::ERRNO_OID_PARSING_ERROR

Бібліотека не змогла розібрати OID (та/або тип команди SET). Запитів не було.

SNMP::ERRNO_MULTIPLE_SET_QUERIES

Бібліотека використовує багато запитів для операції SET. Це означає, що операція буде виконуватися без транзакції, і якщо виникне помилка типу або значення, другий або наступні фрагменти можуть завершитися помилкою.

SNMP::ERRNO_ANY

Усі коди SNMP::ERRNO_* об'єднані побітовим АБО.

Версії протоколу SNMP

SNMP::VERSION_1

SNMP::VERSION_2C SNMP::VERSION_2c

SNMP::VERSION_3

Зміст

  • SNMP::close— Закриває сесію SNMP
  • SNMP::__construct - Створює екземпляр SNMP, що представляє сесію віддаленого агента SNMP
  • SNMP::get— Отримує об'єкт SNMP
  • SNMP::getErrno— Отримує код останньої помилки
  • SNMP::getError— Отримує останнє повідомлення про помилку
  • SNMP::getnext— Отримати об'єкт SNMP, який слідує за цим ідентифікатором об'єкта
  • SNMP::set— Встановлює значення об'єкта SNMP
  • SNMP::setSecurity— Налаштовує пов'язані з безпекою параметри сесії SNMPv3
  • SNMP::walk— Отримує піддерево об'єкта SNMP