SNMP SNMP::walk

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

SNMP::walk — SNMP 개체 하위 트리 가져오기


설명

public SNMP::walk(
    array|string $objectId,
    bool $suffixAsKey = false,
    int $maxRepetitions = -1,
    int $nonRepeaters = -1
): array|false
                

SNMP::walk()는 지정된 objectId에 뿌리를 둔 SNMP 하위 트리를 읽는 데 사용됩니다.


매개변수

objectId
가져올 하위 트리의 루트
suffixAsKey
기본적으로 전체 OID 표기법은 출력 배열의 키에 사용됩니다. true 로 설정하면 object_id의 접미사만 남기고 키에서 하위 트리 접두사가 제거됩니다.
nonRepeaters
이것은 반복되지 않아야 하는 제공된 변수의 수를 지정합니다. 기본값은 SNMP 개체에서 이 값을 사용하는 것입니다.
maxRepetitions
이것은 반복 변수에 대한 최대 반복 횟수를 지정합니다. 기본값은 SNMP 개체에서 이 값을 사용하는 것입니다.

반환 값

SNMP 개체 ID의 연관 배열과 성공 시 해당 값을 반환하고 오류 시 false을 반환합니다. SNMP 오류가 발생하는 경우 SNMP::getErrno()SNMP::getError()는 각각 오류 번호(SNMP 확장과 관련됨, 클래스 상수 참조) 및 오류 메시지를 검색하는 데 사용할 수 있습니다.


오류/예외

이 메서드는 기본적으로 예외를 throw하지 않습니다. 일부 라이브러리 오류가 발생할 때 SNMPException 예외를 발생시키려면 SNMP 클래스 매개변수 exceptions_enabled를 해당 값으로 설정해야 합니다. 자세한 내용은 SNMP::$exceptions_enabled explanation을 참조하십시오.


Examples

예제 #1 SNMP::walk() 예제

                  
<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $fulltree = $session->walk(".");
  print_r($fulltree);
  $session->close();
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [DISMAN-EVENT-MIB::sysUpTimeInstance] => Timeticks: (1150681750) 133 days, 4:20:17.50
    [SNMPv2-MIB::sysContact.0] => STRING: Nobody
    [SNMPv2-MIB::sysName.0] => STRING: server.localdomain
    ...
)
                

예제 #2 suffixAsKey 예제

suffixAsKey는 여러 SNMP 하위 트리를 하나로 병합할 때 사용할 수 있습니다. 이 예제는 인터페이스 이름을 해당 유형에 매핑합니다.

                  
<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $session->valueretrieval = SNMP_VALUE_PLAIN;
  $ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);
  $session->valueretrieval = SNMP_VALUE_LIBRARY;
  $ifType = $session->walk(".1.3.6.1.2.1.2.2.1.3", TRUE);
  print_r($ifDescr);
  print_r($ifType);
  $result = array();
  foreach($ifDescr as $i => $n) {
    $result[$n] = $ifType[$i];
  }
  print_r($result);
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

Array
(
    [1] => igb0
    [2] => igb1
    [3] => ipfw0
    [4] => lo0
    [5] => lagg0
)
Array
(
    [1] => INTEGER: ieee8023adLag(161)
    [2] => INTEGER: ieee8023adLag(161)
    [3] => INTEGER: ethernetCsmacd(6)
    [4] => INTEGER: softwareLoopback(24)
    [5] => INTEGER: ethernetCsmacd(6)
)
Array
(
    [igb0] => INTEGER: ieee8023adLag(161)
    [igb1] => INTEGER: ieee8023adLag(161)
    [ipfw0] => INTEGER: ethernetCsmacd(6)
    [lo0] => INTEGER: softwareLoopback(24)
    [lagg0] => INTEGER: ethernetCsmacd(6)
)
                

기타