(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SNMP::getnext — 指定したオブジェクト ID に続く SNMP オブジェクトを取得する
objectId
が文字列の場合は SNMP::getnext()
は SNMP オブジェクトを文字列で返します。
objectId
が配列の場合は、要求されたすべての SNMP
オブジェクトを SNMP オブジェクトの id とその値の連想配列で返します。
objectId
SNMP オブジェクト (OID)。
SNMP オブジェクトの値を
objectId
にあわせて文字列か配列で返します。
エラー時には false
を返します。
このメソッドは、デフォルトでは一切例外をスローしません。ライブラリでエラーが発生したときに
SNMPException をスローさせるには SNMP クラスパラメータ
exceptions_enabled
に値を設定しなければなりません。
詳細は
SNMP::$exceptions_enabled
の説明を参照ください。
例1 単一の SNMP オブジェクト
ひとつの SNMP オブジェクトに対するリクエストは二通りの方法で行えます。 文字列でリクエストすると結果は文字列で返され、要素がひとつだけの配列でリクエストすると結果は連想配列で返されます。
<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$nsysdescr = $session->getnext("sysDescr.0");
echo "$nsysdescr\n";
$nsysdescr = $session->getnext(array("sysDescr.0"));
print_r($nsysdescr);
?>
上の例の出力は、 たとえば以下のようになります。
OID: NET-SNMP-MIB::netSnmpAgentOIDs.8 Array ( [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8 )
例2 複数の SNMP オブジェクト
<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$results = $session->getnext(array("sysDescr.0", "sysName.0"));
print_r($results);
$session->close();
?>
上の例の出力は、 たとえば以下のようになります。
Array ( [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8 [SNMPv2-MIB::sysLocation.0] => STRING: Nowhere )