0

Java Mibble ライブラリを使用して MIB ファイルを処理し、snmp エージェントの MIB 実装を作成しています。そして、それには少し問題があります:

OCTET_STRING の表現である DisplayString 型がありますが、7 ビットの ASCII 文字しか含めることができません。OCTET_STRING の別の表現である AdminString のようなタイプもありますが、すべての ASCII 文字を含めることができます。

だから私の質問は次のとおりです: DisplayString を区別する方法 (実装で 126 より大きい文字をチェックできるようにするため) と Admin String を区別する方法は? 私は MibTypeTag[1] を使用しようとしましたが、明らかにそれを使用する方法がわかりません (何かヒントはありますか?)。 DisplayString および IpAddress として)"

私の書き言葉の英語は完璧ではないので、私がやりたいことは次のとおりです。

if (MibTypeTag == DisplayString) {
   check for chars greater than 126
}
else if (MibTypeTag == AdminString) {
   awesome! nothing to do!
}

前もって感謝します!

[1] http://www.mibble.org/doc/release/api/net/percederberg/mibble/MibType.html

4

1 に答える 1

1

わかりました、私はこの問題を解決しました。

getTag() をまったく使用しないことにしました。代わりに、次のアルゴリズムを試しました。

  1. オブジェクトの型を取得し (getType())、それが StringType のインスタンスかどうかを確認します

  2. それがあれば、そこから参照シンボルを取得します:

    MibTypeSymbol mts = (StringType)myObj.getReferenceSymbol()

  3. 次に、この MibTypeSymbol を String に変換し、「DisplayString」と比較します。

    mts.toString.equals("DisplayString");

そして - 今のところ - それは働いています。

たぶん、これは将来誰かのために役立つでしょう。

しかし、多分誰かがより良い考えを持っていますか?

于 2010-01-28T12:46:22.087 に答える