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

    (PHP 4 >= 4.3.3, PHP 5, PHP 7)

    Specify the method how the SNMP values will be returned

    说明

    snmp_set_valueretrieval(int $method= SNMP_VALUE_LIBRARY): bool

    参数

    $method
    types
    SNMP_VALUE_LIBRARYThe return values will be as returned by the Net-SNMP library.
    SNMP_VALUE_PLAINThe return values will be the plain value without the SNMP type hint.
    SNMP_VALUE_OBJECT The return values will be objects with the properties "value" and "type", where the latter is one of the SNMP_OCTET_STR, SNMP_COUNTER etc. constants. The way "value" is returned is based on which one of constants SNMP_VALUE_LIBRARY,SNMP_VALUE_PLAIN is set.

    范例

    Example #1 Using snmp_set_valueretrieval()

    <?php
     snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);
     $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
     // $ret = "STRING: lo"
     snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
     $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
     // $ret = "lo";
     snmp_set_valueretrieval(SNMP_VALUE_OBJECT);
     $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
     // stdClass Object
     // (
     //   [type] => 4        <-- SNMP_OCTET_STR, see constants
     //   [value] => lo
     // )
     // PHP 5.4+ examples
     snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_PLAIN);
     $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
     // stdClass Object
     // (
     //   [type] => 4        <-- SNMP_OCTET_STR, see constants
     //   [value] => lo
     // )
     snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_LIBRARY);
     $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
     // stdClass Object
     // (
     //   [type] => 4        <-- SNMP_OCTET_STR, see constants
     //   [value] => STRING: lo
     // )
    ?>
    

    更新日志

    版本说明
    5.4.0

    Constants SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY may be combined with SNMP_VALUE_OBJECT resulting different way of representing contents of$valuearray element in return value of GET-function. If no SNMP_VALUE_{PLAIN,LIBRARY} constant is accompanying SNMP_VALUE_OBJECT,SNMP_VALUE_LIBRARY is used.

    Prior to 5.4.0 SNMP_VALUE_OBJECT effecively meant SNMP_VALUE_OBJECT|SNMP_VALUE_PLAIN.

    参见

    Sample is swow Interface status.
    (.iso.org.dod.internet.mgmt.mib-2.
    interfaces.ifTable.ifEntry.ifAdminStatus)
    Possible values for this request from MIB: 
    Enum(integer): up (1), down (2), testing (3)
    <?php
    //snmp_set_quick_print(0); // is default
    $strIP = "10.1.1.1"; $strComm = "public"; 
    $strOID = ".1.3.6.1.2.1.2.2.1.7.1";
    echo "\n Default valueretrieval with snmp_set_quick_print(0)";
    echo " snmp_get_valueretrieval = SNMP_VALUE_LIBRARY";
    echo ", retrieved value " . snmpget($strIP, $strComm, $strOID); 
    snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);  
    echo "\n SNMP_VALUE_LIBRARY " . snmp_get_valueretrieval();
    echo ", retrieved value " .  snmpget($strIP, $strComm, $strOID); 
    snmp_set_valueretrieval(SNMP_VALUE_PLAIN);  
    echo "\n SNMP_VALUE_PLAIN " . snmp_get_valueretrieval();
    echo ", retrieved value " . snmpget($strIP, $strComm, $strOID); 
    snmp_set_quick_print(1);
    echo "\n Default valueretrieval snmp_set_quick_print(0) " ;
    snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);  
    echo "\n SNMP_VALUE_LIBRARY " . snmp_get_valueretrieval();
    echo ", retrieved value " .  snmpget($strIP, $strComm, $strOID); 
    snmp_set_valueretrieval(SNMP_VALUE_PLAIN);  
    echo "\n SNMP_VALUE_PLAIN " . snmp_get_valueretrieval();
    echo ", retrieved value " . snmpget($strIP, $strComm, $strOID); 
    ?>
    Results:
     Default valueretrieval with snmp_set_quick_print(0)
       snmp_get_valueretrieval = SNMP_VALUE_LIBRARY,
     retrieved value up(1)
     SNMP_VALUE_LIBRARY 0, retrieved value up(1)
     SNMP_VALUE_PLAIN 1, retrieved value 1
     Default valueretrieval snmp_set_quick_print(0) 
     SNMP_VALUE_LIBRARY 0, retrieved value up
     SNMP_VALUE_PLAIN 1, retrieved value 1
    It appears that the possible method constants for this function are:
    SNMP_VALUE_LIBRARY
    SNMP_VALUE_PLAIN
    SNMP_VALUE_OBJECT
    If you are harvesting data you probably want SNMP_VALUE_PLAIN.
    The default value (if this function is not called) is "SNMP_VALUE_LIBRARY", which seems to be SNMP's built-in way of printing things.
    From "snmp.c":
    <code>
    static PHP_GINIT_FUNCTION(snmp)
    {
      snmp_globals->valueretrieval = SNMP_VALUE_LIBRARY;
    }
    </code>
    A mild description of these is:
    SNMP_VALUE_LIBRARY: This is a string similar to:
    "INTEGER: 42"
    SNMP_VALUE_PLAIN: This is a string similar to:
    "42"
    SNMP_VALUE_OBJECT: This is a PHP object like:
    object(
    "type" => SNMP_INTEGER,
    "value" => 42,
    )
    Here, "type" is one of the SNMP_* types that are listed under the "Predefined Constants" page. In addition, types 128, 129, and 130 are error conditions.