関数・クラス解説

SNMP::set

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

SNMP オブジェクトの値を設定する

公式リファレンス

書式

public SNMP::set ( mixed $object_id , mixed $type , mixed $value ) : bool

説明

リモート SNMP エージェントに対して、 object_id で指定した SNMP オブジェクトの値を設定させます。

パラメータ

object_id が文字列のときは、 type と value も文字列にしなければなりません。 object_id が配列のときは、 value も同じサイズの配列にして、対応する値を含めなければなりません。 type は、文字列でもいいし (この値を、すべての object_id-value ペアに適用する)、 同じサイズの配列 (OID ごとに設定する) でもかまいません。 その他の組み合わせで指定すると、E_WARNING メッセージが表示されます。
object_id
SNMP オブジェクト ID。 object_id 配列の OID 数がオブジェクトの max_oids プロパティより多ければ、set メソッドは複数のクエリで値の更新をしなければなりません。 この場合、型や値のチェックはチャンク単位で行われるので、 二番目以降のクエリでリクエストする ODI に対して型や値の問題があれば失敗するかもしれません。 そのため、object_id 配列の OID 数が max_oids プロパティより多いときには警告が発生します。
type
MIB は、オブジェクトIDごとのタイプを定義します。 これは、以下の一覧から指定される一文字でなければなりません。
types
=MIBから取得するタイプ
iINTEGER
uINTEGER
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS
SNMP ライブラリをコンパイルする際、 OPAQUE_SPECIAL_TYPES が定義されていた場合、 以下も正しい値になります:
types
Uunsigned int64
Isigned int64
Ffloat
Ddouble
これらの大半は、対応する ASN.1 の型を使います。's', 'x', 'd' および 'b' はどれも OCTET STRING を異なる方法で表したものであり、'u' も Gauge32 値を扱うためのものです。 MIB ファイルが "snmp_read_mib" や libsnmp の設定で MIB ツリーに読み込まれている場合は、 type に '=' を使うことができます。 これはすべてのオブジェクト ID を表し、型は自動的に MIB から読み込みます。 "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}" のような BITS 型の値変数を設定する方法は二通りあることに注意しましょう。
  • 型として "b" を使い、ビット番号の一覧を指定する。この方法はおすすめしません。 同じ OID に対して GET クエリを実行しても 0xF8 などを返すからです。
  • Using type "x" and a hex number but without(!) the usual "0x" prefix. 型として "x" を使い、通常のプレフィックス "0x" をつけずに(!) 16 進数を指定する。
詳細は、サンプルを参照ください。
value
新しい値。

返値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

エラー

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

サンプル

例1 単一の SNMP オブジェクト ID の設定

  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");   $session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");

例2 単一の SNMP::set() コールによる複数の値の設定

  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");   $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), array('s', 's'), array("Nobody", "Nowhere")); // あるいは   $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));

例3 BITS SNMP オブジェクト ID の設定による SNMP::set() の使用法

  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");   $session->set('FOO-MIB::bar.42', 'b', '0 1 2 3 4'); // あるいは   $session->set('FOO-MIB::bar.42', 'x', 'F0');

参考

  • SNMP::get() - SNMP オブジェクトを取得する
  • ワード検索


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

    関数名アルファベット別

    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用の拡張モジュール