(PHP 5 >= 5.4.0, PHP 7)
SNMP::set — Set the value of an SNMP object
$objectId
, array|string $type
, array|string $value
) : array|bool
Requests remote SNMP agent setting the value of
one or more SNMP objects specified by the objectId
.
If objectId
is string, both
type
and value
must be
string too. If objectId
is array
value
must be equal-sized array containing
corresponding values, type
may be either
string (it's value will be used for all
objectId
-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.
objectId
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
Regulile MIB definesc tipul fiecărui identificator al obiectului. El trebuie specificat printr-un singur caracter din lista ce urmează.
= | Tipul este extras din MIB |
i | INTEGER |
u | INTEGER |
s | STRING |
x | HEX STRING |
d | DECIMAL STRING |
n | NULLOBJ |
o | OBJID |
t | TIMETICKS |
a | IPADDRESS |
b | BITS |
Dacă a fost definit OPAQUE_SPECIAL_TYPES
la compilarea
bibliotecii SNMP, următoarele de asemenea sunt valide:
U | int64 fără semn |
I | int64 cu semn |
F | float |
D | double |
Majoritatea acestora vor utiliza tipul cel mai evident în corespondență cu ASN.1. 's', 'x', 'd' și 'b' sunt toate diferite modalități de a specifica o valoare OCTET STRING, iar tipul 'u' fără semn este utilizat și pentru a menține valori Gauge32.
Dacă fișierele MIB sunt încărcate în arborele MIB cu "snmp_read_mib" sau
specificându-le în configurația libsnmp, '=' poate fi utilizat în
calitate de parametru type
pentru toate identificatoarele
obiectelor, deoarece tipul poate fi apoi citit automat din MIB.
Atrageți atenția că există două modalități de a stabili o variabilă de tip BITS ca de exemplu "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
Vedeți secțiunea cu exemple pentru mai multe detalii.
value
The new value.
Întoarce valoarea true
în cazul
succesului sau false
în cazul eșecului.
Această metodă nu emite careva excepții în mod implicit.
Pentru a activa emiterea unei excepții SNMPException când au loc erori în
bibliotecă trebuie stabilită o valoare corespunzătoare a parametrului clasei
SNMP exceptions_enabled
. Vedeți
explicația
SNMP::$exceptions_enabled
pentru mai multe detalii.
Example #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");
?>
Example #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"));
?>
Example #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');
?>