文字

snmp_set_valueretrieval

(PHP 4 >= 4.3.3, PHP 5)

snmp_set_valueretrieval Specify the method how the SNMP values will be returned

说明

bool snmp_set_valueretrieval ( int $method = SNMP_VALUE_LIBRARY )

参数

method
types
SNMP_VALUE_LIBRARY The return values will be as returned by the Net-SNMP library.
SNMP_VALUE_PLAIN The 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 value array 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 .

参见

  • snmp_get_valueretrieval() - Return the method how the SNMP values will be returned
  • 预定义常量

用户评论:

[#1] doug dot manley at gmail dot com [2009-01-20 13:04:59]

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.

[#2] Mikhail D [2007-08-01 05:26:30]

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

[#3] david at eder dot us [2004-06-24 12:16:14]

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.

上一篇: 下一篇: