SNMP::get
(PHP 5 >= 5.4.0)
SNMP::get — SNMP オブジェクトを取得する
説明
object_id
で指定した SNMP オブジェクトを GET クエリで取得します。
パラメータ
object_id が文字列の場合は SNMP::get()
は SNMP オブジェクトを文字列で返します。
object_id が配列の場合は、要求されたすべての SNMP
オブジェクトを SNMP オブジェクトの id とその値の連想配列で返します。
-
object_id -
SNMP オブジェクト (OID)。
-
preserve_keys -
object_idが配列のときにpreserve_keysをTRUEにすると、結果のキーは完全にobject_idとなります。 それ以外の場合は SNMP::oid_output_format プロパティを使ってキーの形式を判断します。
返り値
object_id で指定した
SNMP オブジェクトの値を
object_id にあわせて文字列か配列で返します。
エラー時には FALSE を返します。
エラー / 例外
このメソッドは、デフォルトでは一切例外をスローしません。ライブラリでエラーが発生したときに
SNMPException をスローさせるには SNMP クラスパラメータ
exceptions_enabled に値を設定しなければなりません。
詳細は
SNMP::$exceptions_enabled の説明を参照ください。
例
例1 単一の SNMP オブジェクト
ひとつの SNMP オブジェクトに対するリクエストは二通りの方法で行えます。 文字列でリクエストすると結果は文字列で返され、要素がひとつだけの配列でリクエストすると結果は連想配列で返されます。
<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$sysdescr = $session->get("sysDescr.0");
echo "$sysdescr\n";
$sysdescr = $session->get(array("sysDescr.0"));
print_r($sysdescr);
?>
上の例の出力は、 たとえば以下のようになります。
STRING: Test server
Array
(
[SNMPv2-MIB::sysDescr.0] => STRING: Test server
)
例2 複数の SNMP オブジェクト
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$results = $session->get(array("sysDescr.0", "sysName.0"));
print_r($results);
$session->close();
上の例の出力は、 たとえば以下のようになります。
Array
(
[SNMPv2-MIB::sysDescr.0] => STRING: Test server
[SNMPv2-MIB::sysName.0] => STRING: myhost.nodomain
)
参考
- SNMP::getErrno() - 直近のエラーコードを取得する
- SNMP::getError() - 直近のエラーメッセージを取得する