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_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 Prior to 5.4.0 |
参见
snmp_get_valueretrieval()
Return the method how the SNMP values will be returned- 预定义常量
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.