(PHP 4, PHP 5, PHP 7)
snmp3_set — Set the value of an SNMP object
$host
, string $sec_name
, string $sec_level
, string $auth_protocol
, string $auth_passphrase
, string $priv_protocol
, string $priv_passphrase
, string $object_id
, string $type
, string $value
[, int $timeout = 1000000
[, int $retries = 5
]] )
snmp3_set() is used to set the value of an SNMP object
specified by the object_id.
Even if the security level does not use an auth or priv protocol/password valid values have to be specified.
hostThe hostname of the SNMP agent (server).
sec_namethe security name, usually some kind of username
sec_levelthe security level (noAuthNoPriv|authNoPriv|authPriv)
auth_protocolthe authentication protocol (MD5 or SHA)
auth_passphrasethe authentication pass phrase
priv_protocolthe privacy protocol (DES or AES)
priv_passphrasethe privacy pass phrase
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.
成功时返回 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".
Example #1 Using snmp3_set()
<?php
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifAlias.3', 's', "foo");
?>
Example #2 Using snmp3_set() for setting BITS SNMP object id
<?php
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'x', 'F0');
?>