
我在 snmpwalk 查询以非统一方式返回 snmp 变量时遇到问题:
.1.3.6.1.2.1.10.127.1.3.3.1.2.215 -> Hex-STRING: 24 37 4C 0C 65 0E
.1.3.6.1.2.1.10.127.1.3.3.1.2.216 -> Hex-STRING: 24 37 4C 0B A2 DA
.1.3.6.1.2.1.10.127.1.3.3.1.2.217 -> STRING: "$7L
f:"
.1.3.6.1.2.1.10.127.1.3.3.1.2.218 -> STRING: "$7L
k2"
如您所见,一些变量是 STRING 类型,其他变量是 Hex-STRING。因此,我尝试编写一个简单的 MIB 来强制它们全部以 Hex-STRING 形式输出。这是我目前得到的结果:
TEST-MIB DEFINITIONS ::= BEGIN
PhysAddress ::= TEXTUAL-CONVENTION
DISPLAY-HINT "1x:"
STATUS current
SYNTAX OCTET STRING
test OBJECT-TYPE
SYNTAX PhysAddresss
MAX-ACCESS read-only
STATUS current
::= { 1 3 6 1 2 1 10 127 1 3 3 1 2 }
END
但是,snmpwalk 似乎没有注意到我的文本约定(即使“test”变量被识别)。我仍然得到 STIRNG 和 Hex-STRING 的混合。我的错误在哪里?
snmpwalk -v2c -cpublic 192.168.1.2 TEST-MIB::test
...
TEST-MIB::test.216 = Hex-STRING: 24 37 4C 0B A2 DA
TEST-MIB::test.217 = STRING: "$7L
f:"