« SNMP::__construct
SNMP::getErrno »

SNMP::get

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::get — SNMP オブジェクトを取得する

説明

public function SNMP::get(array|string $objectId, bool $preserveKeys = false): mixed

objectId で指定した SNMP オブジェクトを GET クエリで取得します。

パラメータ

objectId が文字列の場合は SNMP::get() は SNMP オブジェクトを文字列で返します。 objectId が配列の場合は、要求されたすべての SNMP オブジェクトを SNMP オブジェクトの id とその値の連想配列で返します。

objectId

SNMP オブジェクト (OID)。

preserveKeys

objectId が配列のときに preserveKeys を true にすると、結果のキーは完全に objectId となります。 それ以外の場合は SNMP::oid_output_format プロパティを使ってキーの形式を判断します。

戻り値

objectId で指定した SNMP オブジェクトの値を objectId にあわせて文字列か配列で返します。 エラー時には false を返します。

エラー / 例外

ライブラリでエラーが発生し、その種類が SNMP::$exceptions_enabled のビットマスクに含まれている場合は、SNMPException をスローします。 それ以外の場合は、E_WARNING を発生させます。

例

例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
)

参考

関連キーワード:
objectId   session   sysDescr   sysdescr   preserveKeys   リクエスト   server   SNMPv   getErrno   連想   キー   print   results   sysName   直近   construct   mixed   クエリ   要求   output   format   プロパティ   判断   ライブラリ   種類
関連する関数・ページ:
snmp.getnext   snmp.set   snmp.walk   class.snmp   snmp.geterrno   function.session-commit