文字

snmp3_set

(PHP 4, PHP 5)

snmp3_setSet the value of an SNMP object

说明

bool snmp3_set ( string $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.

参数

host

The hostname of the SNMP agent (server).

sec_name

the security name, usually some kind of username

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

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 ,那么下列值是合法的:

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)}":

  • 使用 "b" 类型以及一个位数的列表。不推荐使用此方法,因为 GET 查询对同一个 OID 将会返回例如 0xF8。
  • 使用 "x" 类型以及一个十六进制数但是不需要通常的 "0x" 前缀。

更多细节见范例部分。

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".

范例

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' );
?>
上一篇: 下一篇: