SNMP::set

(PHP 5 >= 5.4.0, PHP 7)

SNMP::setSet the value of an SNMP object

Opis

public SNMP::set ( mixed $object_id , mixed $type , mixed $value ) : bool

Requests remote SNMP agent setting the value of one or more SNMP objects specified by the object_id.

Parametry

If object_id is string, both type and value must be string too. If object_id is array value must be equal-sized array containing corresponding values, type may be either string (it's value will be used for all object_id-value pairs) or equal-sized array with per-OID value. When any other parameters' combinations are used, a number of E_WARNING messages may be shown with detailed description.

object_id

The SNMP object id

When count of OIDs in object_id array is greater than max_oids object property set method will have to use multiple queries to perform requested value updates. In this case type and value checks are made per-chunk so second or subsequent requests may fail due to wrong type or value for OID requested. To mark this a warning is raised when count of OIDs in object_id array is greater than max_oids.

type

MIB definiuje typ każdego id obiektu. Musi być podany jako pojedynczy znak z poniższej listy

types
=Typ pobrany z MIB
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS

Jeśli przy kompilacji biblioteki SNMP zdefiniowana została stała OPAQUE_SPECIAL_TYPES, dostępne są także poniższe wartości:

types
Uunsigned int64
Isigned int64
Ffloat
Ddouble

Większość z nich będzie w sposób oczywisty odpowiadać typowi ASN.1 's', 'x', 'd' i 'b' są różnymi sposobami na określenie wartości OCTET STRING, a typ 'u' - bez określania znaku - stosowany jest także dla obsługi wartości Gauge32.

Jeśli pliki MIB są ładowane do drzewa MIB poprzez "snmp_read_mib" lub przez podanie ich w konfiguracji libsnmp, '=' może być stosowane jako wartość parametru type dla wszystkich id obiektów, jako że typ może być automatycznie odczytany z MIB.

Istnieją dwa sposoby aby ustawić wartość zmiennej typu BITS, przykładowo "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Stosując typ "b" i listę wartości bitowych. Ta metoda nie jest zalecana ponieważ zapytanie GET dla dla tego samego OID zwróciłoby np. 0xF8.
  • Stosując typ "x" i wartość szesnastkową bez zwyczajowego prefiksu "0x".

Zobacz też sekcję z przykładami.

value

The new value.

Zwracane wartości

Zwraca TRUE w przypadku powodzenia, FALSE w przypadku błędu.

Błędy/Wyjątki

Ta metoda domyślnie nie zwraca żadnych wyjątków. Aby włączyć zwracanie wyjątku SNMPException przy wystąpieniu niektórych błędów biblioteki, należy odpowiednio ustawić parametru klasy SNMP exceptions_enabled. Zobacz opis SNMP::$exceptions_enabled aby dowiedzieć się więcej.

Przykłady

Przykład #1 Set single SNMP object id

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

Przykład #2 Set multiple values using single SNMP::set() call

<?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"));
?>

Przykład #3 Using SNMP::set() for setting BITS SNMP object id

<?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');
?>

Zobacz też:

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top