リモート SNMP エージェントへのセッションを表す SNMP インスタンスを作成する

# SNMP::__construct

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

SNMP::__construct — リモート SNMP エージェントへのセッションを表す SNMP インスタンスを作成する

### 説明

public function SNMP::__construct(
int `$version`,
string `$hostname`,
string `$community`,
int `$timeout` = -1,
int `$retries` = -1
)

リモートの SNMP エージェントとのセッションを表現する、SNMP インスタンスを作成します。

### パラメータ

`version`
  SNMP プロトコルのバージョン。 `SNMP::VERSION_1`、 `SNMP::VERSION_2C` あるいは `SNMP::VERSION_3`。
`hostname`

  SNMP エージェント。`hostname` には、オプションでコロンに続けて SNMP エージェントのポートを指定できます。 IPv6 アドレスでポートを指定する場合は、アドレス部を角括弧で囲まなければなりません。 `hostname` で FQDN を使うと、その解決に使われるのは PHP SNMP 拡張モジュールであり、Net-SNMP エンジンは使いません。 FQDN を指定するときに IPv6 アドレスを使うには、FQDN を角括弧で囲まなければなりません。 いくつか例を示します。

  IPv4 (デフォルトのポート) | 127.0.0.1
  IPv6 (デフォルトのポート) | ::1 あるいは [::1]
  IPv4 (ポートを指定) | 127.0.0.1:1161
  IPv6 (ポートを指定) | [::1]:1161
  FQDN (デフォルトのポート) | host.domain
  FQDN (ポートを指定) | host.domain:1161
  FQDN (デフォルトのポート)、IPv6 アドレスを強制 | [host.domain]
  FQDN (ポートを指定)、IPv6 アドレスを強制 | [host.domain]:1161

`community`
  指定された `version` に対応するセキュリティレベルを指定します。 `community` の目的は、 SNMP のバージョンによって異なります。

  `SNMP::VERSION_1` | 読み取り専用パーミッションに対応する `public`、 または読み取りと書き込みに対応する `private`
  `SNMP::VERSION_2C` | 読み取り専用パーミッションに対応する `public`、 または読み取りと書き込みに対応する `private`
  `SNMP::VERSION_3` | SNMPv3 のセキュリティ名。以下のうちの一つが指定できます: `noAuthNoPriv`, `authNoPriv` (認証のパスフレーズと認証プロトコルが必須), `authPriv` (認証のパスフレーズとプロトコル、そして、プライバシーのパスフレーズとプロトコルが必須)

  SNMPv3 を使うには、 SNMP::setSecurity() を使ってセキュリティ関連のセッションパラメータの設定が必要です。
`timeout`
  最初のタイムアウトまでのミリ秒数。
`retries`
  タイムアウト発生時の再試行回数。

### エラー / 例外

SNMP::__construct() が例外を発生させるのは、 パラメータの数や型が間違っていたり未知の SNMP プロトコルバージョンを指定したりした場合です。

### 例

例1 ホストの物理的な位置を取得

    <?php

    $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
    $sysdescr = $session->get("sysDescr.0");
    echo "$sysdescr\n";

    ?>

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

    STRING: Test server

### 参考

- SNMP::close() - SNMP セッションを閉じる

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open