gpt4 book ai didi

java - 检查 MIB 对象是否为 DisplayString

转载 作者:行者123 更新时间:2023-12-01 16:08:19 25 4
gpt4 key购买 nike

我正在使用 java Mibble 库来处理 MIB 文件并为我的 snmp 代理创建 MIB 实现。并有一个小问题:

有一个 DisplayString 类型,它是 OCTET_STRING 的表示形式,但只能包含 7 位 ASCII 字符。还有像 AdminString 这样的类型,它是 OCTET_STRING 的另一种表示,但可以包含所有 ASCII 字符。

所以我的问题是:如何区分 DisplayString(以便我可以在我的实现中检查大于 126 的字符)与 Admin String?我尝试使用 MibTypeTag[1] 但显然我不知道如何使用它(有任何提示吗?)并且它说“可以使用相同或相似的原始 ASN.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

最佳答案

好的,我解决了这个问题。

我决定根本不使用 getTag() - 相反,我尝试了这个算法:

  1. 获取对象的类型(getType())并检查它是否是 StringType 的实例

  2. 如果是,我从中获取引用符号:

    MibTypeSymbol mts = (StringType)myObj.getReferenceSymbol()

  3. 然后我将此 MibTypeSymbol 转换为字符串并与“DisplayString”进行比较

    mts.toString.equals("DisplayString");

而且 - 就目前而言 - 它正在发挥作用。

也许这对将来的人有帮助。

但也许有人有更好的主意?

关于java - 检查 MIB 对象是否为 DisplayString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2154164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com