0

一部のデバイスに snmp クライアントを作成したい。ただし、デバイスは localhost から直接アクセスできません。外部 IP を使用して snmp クライアント (セッション) を作成したい。SNMP4j を使用してそれを埋めるにはどうすればよいですか。

以下は、snmp クライアントの作成に使用するコード スニペットです。

 public SNMPClient(String address) {
    super();
    this.address = address;
    try {
        start();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

private void start() throws IOException {

    TransportMapping transport = new DefaultUdpTransportMapping();

    // Create Target Address object
    this.target = new CommunityTarget();
    target.setCommunity(new OctetString("public"));
    target.setVersion(SnmpConstants.version2c);
    target.setAddress(new UdpAddress(address));
    target.setRetries(2);
    target.setTimeout(50000);
    snmp = new Snmp(transport);

    transport.listen();
}

以下に示すように、トランスポートの作成中に外部IPを付与しようとしました

TransportMapping transport = new DefaultUdpTransportMapping(new UdpAddress("192.8.8.8"));

しかし、機能していないようです。

どうすれば先に進むことができるか提案してください。

前もってありがとう、ブリナル

4

1 に答える 1

3

コードにリスニング ポートの定義がありません。これがどのように機能するかです

TransportMapping transport = new DefaultUdpTransportMapping(new UdpAddress("192.8.8.8/161"));
  • 標準の snmp エージェント クエリ応答をリッスンするための 161 ポート
  • 162 snmp エージェント トラップ メッセージのリッスン

しかし、あなたの質問を完全に理解しているかどうかはわかりません。SNMP クライアント (マネージャー) は、ネットワーク デバイス (ルーター、PC、プリンターなど) で実行されている SNMP エージェントにクエリを実行し、これらのクエリに対する応答を受信するために使用されます。マネージャーは、snmp エージェントによって起動されたトラップ メッセージもリッスンします。snmp マネージャーまたはエージェントを作成する目的はありますか?

于 2014-01-04T19:03:48.100 に答える