• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • snmp2_set()

    (PHP >= 5.2.0)

    Set the value of an SNMP object

    说明

    snmp2_set(string $host,string $community,string $object_id,string $type,string $value[,int $timeout= 1000000[,int $retries= 5]]): bool

    snmp2_set() is used to set the value of an SNMP object specified by the$object_id.

    参数

    $host

    The hostname of the SNMP agent(server).

    $community

    The write community.

    $object_id

    The SNMP object id.

    $type

    MIB定义了各个对象 id 的类型。必须是下面列出的单个字符之一。

    类型
    =MIB类型
    iINTEGER
    uINTEGER
    sSTRING
    xHEX STRING
    dDECIMAL STRING
    nNULLOBJ
    oOBJID
    tTIMETICKS
    aIPADDRESS
    bBITS

    如果在编译SNMP库时定义了OPAQUE_SPECIAL_TYPES,那么下列值是合法的:

    types
    Uunsigned int64
    Isigned int64
    Ffloat
    Ddouble

    这些值大都会使用与 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 snmp2_set()

    <?php
      snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
    ?>
    

    Example #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');
    ?>
    

    参见

    The "type" parameter must be one of the following, depending on the type of variable to set on the SNMP host:
    i  INTEGER
    u  unsigned INTEGER
    t  TIMETICKS
    a  IPADDRESS
    o  OBJID
    s  STRING
    x  HEX STRING
    d  DECIMAL STRING
    If OPAQUE_SPECIAL_TYPES was defined while compiling the SNMP library, the following are also valid:
    U  unsigned int64
    I  signed int64
    F  float
    D  double

    上篇:snmp2_real_walk()

    下篇:snmp2_walk()