関数・クラス解説

SNMP::walk

version:PHP 5 >= 5.4.0, PHP 7 (公式)

SNMP オブジェクトのサブツリーを取得する

公式リファレンス

書式

public SNMP::walk ( string $object_id [, bool $suffix_as_key = FALSE [, int $max_repetitions [, int $non_repeaters ]]] ) : array

説明

SNMP::walk() を使い、 指定した object_id を起点とする SNMP サブツリーを読み込みます。

パラメータ

object_id
取得するサブツリーのルート。
suffix_as_key
デフォルトでは、完全な OID 記法を出力配列のキーとして使います。 TRUE にすると、サブツリーのプレフィックスはキーから取り除き、 object_id のサフィックスだけを残します。
non_repeaters
これは、渡された変数の中で反復処理の対象外とする変数の数を指定します。 デフォルトは、SNMP オブジェクトでの設定を使います。
max_repetitions
これは、繰り返す変数の反復処理の最大数を指定します。 デフォルトは、SNMP オブジェクトでの設定を使います。

返値

成功した場合は SNMP オブジェクトの ID とその値の連想配列を返します。エラー時には FALSE を返します。 SNMP エラーが発生した場合は、SNMP::getErrno() および SNMP::getError() を使えばエラー番号(SNMP 拡張モジュールで設定したもの。クラス定数を参照) とエラーメッセージをそれぞれ取得できます。

エラー

このメソッドは、デフォルトでは一切例外をスローしません。ライブラリでエラーが発生したときに SNMPException をスローさせるには SNMP クラスパラメータ exceptions_enabled に値を設定しなければなりません。 詳細は SNMP::$exceptions_enabled の説明を参照ください。

サンプル

例1 SNMP::walk() の例

  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");   $fulltree = $session->walk(".");   print_r($fulltree);   $session->close();

上の例の出力は、たとえば以下のようになります。

Array ( [SNMPv2-MIB::sysDescr.0] => STRING: Test server [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8 [DISMAN-EVENT-MIB::sysUpTimeInstance] => Timeticks: (1150681750) 133 days, 4:20:17.50 [SNMPv2-MIB::sysContact.0] => STRING: Nobody [SNMPv2-MIB::sysName.0] => STRING: server.localdomain ... )

例2 suffix_as_key の例

suffix_as_key は、複数の SNMP サブツリーをひとつにまとめるときに使えます。この例では、インターフェイス名とその型を関連付けます。

  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");   $session->valueretrieval = SNMP_VALUE_PLAIN;   $ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);   $session->valueretrieval = SNMP_VALUE_LIBRARY;   $ifType = $session->walk(".1.3.6.1.2.1.2.2.1.3", TRUE);   print_r($ifDescr);   print_r($ifType);   $result = array();   foreach($ifDescr as $i => $n) {     $result[$n] = $ifType[$i];   }   print_r($result);

上の例の出力は、たとえば以下のようになります。

Array ( [1] => igb0 [2] => igb1 [3] => ipfw0 [4] => lo0 [5] => lagg0 ) Array ( [1] => INTEGER: ieee8023adLag(161) [2] => INTEGER: ieee8023adLag(161) [3] => INTEGER: ethernetCsmacd(6) [4] => INTEGER: softwareLoopback(24) [5] => INTEGER: ethernetCsmacd(6) ) Array ( [igb0] => INTEGER: ieee8023adLag(161) [igb1] => INTEGER: ieee8023adLag(161) [ipfw0] => INTEGER: ethernetCsmacd(6) [lo0] => INTEGER: softwareLoopback(24) [lagg0] => INTEGER: ethernetCsmacd(6) )

参考

  • SNMP::getErrno() - 直近のエラーコードを取得する
  • SNMP::getError() - 直近のエラーメッセージを取得する
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール