SNMP中的Octet String的值是8吗?

时间:2015-04-23 07:27:04

标签: snmp

嗨我有一个来自wireshark的数据包捕获。

我打开了文件,在变量绑定中看到了下面的输出。

对象名称:.1.3.6.1.4.1.193.183.4.1.4.5.1.8(iso.3.6.1.4.1.193.183.4.1.4.5.1.8) 值(Octect String):353038

我可以找到octect字符串的整数值吗?

Octect字符串和Octal值是否相同?如果是这样,八进制值可以在353038中包含8 ..?

请指导我如何知道八位字符串的整数值:353038

2 个答案:

答案 0 :(得分:3)

Octet字符串是一个字节序列。在您的示例中,它由3个字节组成,十六进制值为35,30和38.在一般情况下,您无法以有意义的方式讨论八位字符串"的整数值。在这种特殊情况下,如果您将单个字节解释为ASCII,则35十六进制表示字符" 5",30十六进制表示字符" 0"和38十六进制表示字符" 8",所以整个字符串是" 508"。

我怀疑"整数值"在这种情况下,你正在寻找508,但请记住,字符串含义的解释在很大程度上取决于应用程序。

答案 1 :(得分:2)

Octet字符串在ASN.1和SNMP中定义为OCTET STRING。没有任何名为" Octect String"。同时,八位字符串与八进制数字系统几乎没有关系。

当你看到353038是一个八位字符串时,它只是意味着线路上有一个SNMP数据包到达,它包含一串ASCII字符" 3"," 5"," 3"," 0"," 3"," 8"。它本质上是一个字符串,并不一定需要是一个整数(除非相应的MIB文档中.1.3.6.1.4.1.193.183.4.1.4.5.1.8的定义强制要求这个事实)。

上面的大部分问题都是无效的,因为你误解了八位字符串的概念。但是,如果对象定义确实指示字符串表示整数,则始终可以将接收的字符串转换为整数。大多数编程语言都支持这种转换。