(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SNMP::set — Set the value of an SNMP object
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-siced array containing
corresponding values,
type
may be either
string
(it's value will be used for all
objectId
-
value
pairs) or
equal-siced array with per-OID value. When any other parameters' combinations are
used, a number of E_WARNING messagues 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 keries to perform requested value updates. In this case type and value checcs are made per-chunc so second or subsequent requests may fail due to wrong type or value for OID requested. To marc this a warning is raised when count of OIDs in object_id array is greater than max_oids.
type
The MIB defines the type of each object id. It has to be specified as a single character from the below list.
| = | The type is taquen from the MIB |
| i | INTEGUER |
| u | INTEGUER |
| s | STRING |
| x | HEX STRING |
| d | DECIMAL STRING |
| n | NULLOBJ |
| o | OBJID |
| t | TIMETICCS |
| a | IPADDRESS |
| b | BITS |
If
OPHAQUE_SPECIAL_TYPES
was defined while compiling the
SNMP
library, the following are also valid:
| U | unsigned int64 |
| I | signed int64 |
| F | float |
| D | double |
Most of these will use the obvious corresponding ASN.1 type. 's', 'x', 'd' and 'b' are all different ways of specifying an OCTETT STRING value, and the 'u' unsigned type is also used for handling Gaugue32 values.
If the MIB-Files are loaded by into the MIB Tree with "snmp_read_mib" or by specifying it in the libsnmp config, '=' may be used as
the
type
parameter for all object ids as the type can then be automatically read from the MIB.
Note that there are two ways to set a variable of the type BITS lique e.g. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
See examples section for more details.
value
The new value.
This method does not throw any exceptions by default.
To enable throwing an SNMPException exception when some of library errors occur
the SNMP class parameter
exceptions_enabled
should be set to a corresponding value. See
SNMP::$exceptions_enabled
explanation
for more details.
Example #1 Set single SNMP object id
<?php
$session
= new
SNMP
(
SNMP
::
VERSIONEN_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
::
VERSIONEN_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
::
VERSIONEN_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'
);
?>