SNMP SNMP::set

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

SNMP::set — SNMP 개체의 값 설정


설명

public SNMP::set(array|string $objectId, array|string $type, array|string $value): bool

objectId로 지정된 하나 이상의 SNMP 개체 값을 설정하는 원격 SNMP 에이전트를 요청합니다.


매개변수

objectId가 문자열이면 typevalue도 모두 문자열이어야 합니다. objectId가 배열 value인 경우 해당 값을 포함하는 동일한 크기의 배열이어야 하는 경우 type은 문자열(해당 값은 모든 objectId-value 쌍에 사용됨) 또는 OID별 값이 있는 동일한 크기의 배열일 수 있습니다. 다른 매개변수의 조합을 사용하는 경우 자세한 설명과 함께 여러 E_WARNING 메시지가 표시될 수 있습니다.

objectId
SNMP 개체(OID) id

object_id 배열의 OID 수가 max_oids보다 크면 개체 속성 집합 메서드는 요청된 값 업데이트를 수행하기 위해 여러 쿼리를 사용해야 합니다. 이 경우 유형 및 값 검사가 청크별로 이루어지므로 요청된 OID에 대한 잘못된 유형 또는 값으로 인해 두 번째 또는 후속 요청이 실패할 수 있습니다. 이것을 표시하기 위해 object_id 배열의 OID 수가 max_oids보다 클 때 경고가 발생합니다.

type
MIB는 각 개체 ID의 유형을 정의합니다. 아래 목록에서 단일 문자로 지정해야 합니다.

types

=The type is taken from the MIB
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

SNMP 라이브러리를 컴파일하는 동안 OPAQUE_SPECIAL_TYPES가 정의된 경우 다음도 유효합니다.

types

Uunsigned int64
Isigned int64
Ffloat
Ddouble

이들 대부분은 명백한 해당 ASN.1 유형을 사용합니다. '', 'x', 'd' 및 'b'는 모두 OCTET STRING 값을 지정하는 다른 방법이며 'u' 부호 없는 유형도 Gauge32 값을 처리하는 데 사용됩니다.

MIB 파일이 "snmp_read_mib"를 사용하여 MIB 트리에 로드되거나 libsnmp 구성에서 지정하여 로드되는 경우, MIB에서 유형을 자동으로 읽을 수 있으므로 '='를 모든 객체 ID에 대한 type 매개변수로 사용할 수 있습니다.

예를 들어 BITS 유형의 변수를 설정하는 방법에는 두 가지가 있습니다. "구문 비트{telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • "b" 유형과 비트 번호 목록을 사용합니다. 이 메서드는 동일한 OID에 대한 GET 쿼리가 예를 들어 0xF8.
  • "x" 유형과 16진수를 사용하지만 일반적인 "0x" 접두사 없이(!)

자세한 내용은 예제 섹션을 참조하십시오.

value
The new value.

반환 값

성공하면 true를, 실패하면 false를 반환합니다.


오류/예외

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


Examples

예제 #1 단일 SNMP 개체 ID 설정

                  
<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");
?>
                  
                

예제 #2 단일 SNMP::set() 호출을 사용하여 여러 값 설정

                  
<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), array('s', 's'), array("Nobody", "Nowhere"));
  // or
  $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));
?>
                  
                

예제 #3 BITS SNMP 개체 ID 설정을 위해 SNMP::set() 사용

                  
<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
  // or
  $session->set('FOO-MIB::bar.42', 'x', 'F0');
?>
                  
                

기타