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.
snmp_set_valueretrieval
(PHP 4 >= 4.3.3, PHP 5)
snmp_set_valueretrieval — SNMP の値が返される方法を設定する
説明
bool
snmp_set_valueretrieval
(
int
$method
= SNMP_VALUE_LIBRARY
)パラメータ
-
method -
型 SNMP_VALUE_LIBRARY Net-SNMP ライブラリの返す形式のままで返します。 SNMP_VALUE_PLAIN SNMP の型ヒントを含まないプレーンな値を返します。 SNMP_VALUE_OBJECT プロパティ "value" および "type" をもつオブジェクトを返します。 "type" は SNMP_OCTET_STR や SNMP_COUNTER などの定数のいずれかとなります。 "value" を返す方法は、定数 SNMP_VALUE_LIBRARY、SNMP_VALUE_PLAINのどちらが設定されているかによって決まります。
例
例1 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 以降の例
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 |
定数
5.4.0 より前のバージョンでは |
doug dot manley at gmail dot com
20-Jan-2009 01:04
Mikhail D
01-Aug-2007 05:26
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
david at eder dot us
24-Jun-2004 12:16
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.
