(PHP >= 5.2.0, PHP 7, PHP 8)
snmp2_set — Set the value of an SNMP object
$hostname
,$community
,$object_id
,$type
,$value
,$timeout
= -1,$retries
= -1
snmp2_set() is used to set the value of an SNMP object
specified by the object_id
.
hostname
The hostname of the SNMP agent (server).
community
The write community.
object_id
The SNMP object id.
type
MIB 定義了各個對象 id 的類型。必須是下面列出的單個字符之一。
= | MIB類型 |
i | INTEGER |
u | INTEGER |
s | STRING |
x | HEX STRING |
d | DECIMAL STRING |
n | NULLOBJ |
o | OBJID |
t | TIMETICKS |
a | IPADDRESS |
b | BITS |
如果在編譯 SNMP 庫時定義了 OPAQUE_SPECIAL_TYPES
,那么下列值是合法的:
U | unsigned int64 |
I | signed int64 |
F | float |
D | double |
這些值大都會使用與 ASN.1 相符的類型。's','x','d' 以及 'b' 都是指定一個八字節(jié)字符串值的方式。并且 'u' 無符號類型也可用于處理 Gauge32 值。
如果 MIB 文件是用 "snmp_read_mib" 或者通過在 libsnmp config 中指定而加載入 MIB 樹時,
'=' 可以被用作為所有對象的 type
參數(shù),因為 type 可以被自動從 MIB 中讀取。
注意有兩種方式可以設(shè)定 BITS 類型的變量,例如 "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
更多細節(jié)見范例部分。
value
The new value.
timeout
The number of microseconds until the first timeout.
retries
The number of times to retry if timeouts occur.
成功時返回 true
, 或者在失敗時返回 false
。
If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".
示例 #1 Using snmp2_set()
<?php
snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>
示例 #2 Using snmp2_set() for setting BITS SNMP object id
<?php
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>