SNMP SNMP 클래스

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


소개

SNMP 세션을 나타냅니다.


클래스 개요

                  
class SNMP {

  /* Properties */
  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;

  /* Methods */
  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

  /* Constants */
  const int ERRNO_NOERROR = 0;
  const int ERRNO_GENERIC = 2;
  const int ERRNO_TIMEOUT = 4;
  const int ERRNO_ERROR_IN_REPLY = 8;
  const int ERRNO_OID_NOT_INCREASING = 16;
  const int ERRNO_OID_PARSING_ERROR = 32;
  const int ERRNO_MULTIPLE_SET_QUERIES = 64;
  const int ERRNO_ANY = 126;
  const int VERSION_1 = 0;
  const int VERSION_2C = 1;
  const int VERSION_2c = 1;
  const int VERSION_3 = 3;
}
                  
                

Properties

max_oids
GET/SET/GETBULK 요청당 최대 OID
valueretrieval
SNMP 값이 반환되는 메서드를 제어합니다.
SNMP_VALUE_LIBRARY 반환 값은 Net-SNMP 라이브러리에서 반환된 대로입니다.
SNMP_VALUE_PLAIN 반환 값은 SNMP 유형 정보가 없는 일반 값입니다.
SNMP_VALUE_OBJECT 반환 값은 "value" 및 "type" 속성이 있는 개체이며, 여기서 후자는 SNMP_OCTET_STR, SNMP_COUNTER 등의 상수 중 하나입니다. "값"이 반환되는 방식은 SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN 중 하나가 설정되어 있습니다.
quick_print
NET-SNMP 라이브러리 내의 quick_print

NET-SNMP 라이브러리 내에서 quick_print의 값을 설정합니다. 이것이 설정되면(1), SNMP 라이브러리는 '빠른 인쇄' 값을 반환합니다. 즉, 값만 인쇄됩니다. quick_print가 활성화되지 않은 경우(기본값) NET-SNMP 라이브러리는 값 유형(예: IpAddress 또는 OID)을 포함한 추가 정보를 인쇄합니다. 또한 quick_print가 활성화되지 않은 경우 라이브러리는 3자 이하의 모든 문자열에 대해 추가 16진수 값을 인쇄합니다.

enum_print
열거형 값이 인쇄되는 방식을 제어합니다.

매개변수는 Walk/get 등이 자동으로 MIB에서 열거형 값을 조회하고 사람이 읽을 수 있는 문자열과 함께 반환해야 하는 경우 토글합니다.

oid_output_format
OID 출력 형식 제어

다양한 oid_output_format 값에 대한 OID .1.3.6.1.2.1.1.3.0 표현

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
SNMP_OID_OUTPUT_UCDsystem.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NONEUndefined
oid_increasing_check
OID 트리를 걷는 동안 OID 증가 확인 비활성화 제어

일부 SNMP 에이전트는 OID를 잘못된 순서로 반환하는 것으로 알려져 있지만 어쨌든 워크를 완료할 수 있습니다. 다른 에이전트는 순서가 잘못된 OID를 반환하고 SNMP::walk()가 메모리 제한에 도달할 때까지 무한 루프하도록 할 수 있습니다. PHP SNMP 라이브러리는 기본적으로 OID 증가 확인을 수행하고 비증가 OID에 대한 경고를 발행하여 가능한 루프를 감지하면 OID 트리에서 걷기를 중지합니다. 이 검사를 비활성화하려면 oid_increasing_checkfalse로 설정하십시오.

exceptions_enabled
경고 대신 SNMPException을 발생시키는 실패를 제어합니다. 비트 OR로 연결된 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 에이전트는 (BULK)WALK 명령을 실행하는 동안 OID 순환 보고 비증가 OID에 직면했습니다. 이것은 가짜 원격 SNMP 에이전트를 나타냅니다.
SNMP::ERRNO_OID_PARSING_ERROR
OID(및/또는 SET 명령의 유형)를 구문 분석하는 동안 라이브러리가 실패했습니다. 쿼리가 생성되지 않았습니다.
SNMP::ERRNO_MULTIPLE_SET_QUERIES
라이브러리는 요청된 SET 작업에 대해 여러 쿼리를 사용합니다. 즉, 트랜잭션이 아닌 방식으로 작업이 수행되고 유형 또는 값 오류가 발생하면 두 번째 또는 후속 청크가 실패할 수 있습니다.
SNMP::ERRNO_ANY
모든 SNMP::ERRNO_* 코드는 비트 단위로 OR 처리됩니다.

SNMP 프로토콜 버전

SNMP::VERSION_1
SNMP::VERSION_2C, SNMP::VERSION_2c
SNMP::VERSION_3

목차