array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'zh', ), 'this' => array ( 0 => 'function.snmp2-set.php', 1 => 'snmp2_set', 2 => 'Set the value of an SNMP object', ), 'up' => array ( 0 => 'ref.snmp.php', 1 => 'SNMP 函数', ), 'prev' => array ( 0 => 'function.snmp2-real-walk.php', 1 => 'snmp2_real_walk', ), 'next' => array ( 0 => 'function.snmp2-walk.php', 1 => 'snmp2_walk', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/snmp/functions/snmp2-set.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>
(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.
hostnameThe hostname of the SNMP agent (server).
communityThe write community.
object_idThe SNMP object id.
typeMIB 定义了各个对象 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' 都是指定一个八字节字符串值的方式。并且 'u' 无符号类型也可用于处理 Gauge32 值。
如果 MIB 文件是用 "snmp_read_mib" 或者通过在 libsnmp config 中指定而加载入 MIB 树时,
'=' 可以被用作为所有对象的 type 参数,因为 type 可以被自动从 MIB 中读取。
注意有两种方式可以设定 BITS 类型的变量,例如 "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
更多细节见示例部分。
valueThe new value.
timeoutThe number of microseconds until the first timeout.
retriesThe number of times to retry if timeouts occur.
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');
?>