2015-04-23 86 views
1

嗨,我有一个wireshark抓包。SNMP中的Octet字符串值为8?

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

对象名称:.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) 值(八位字节字符串):353038

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

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

请指导我怎么知道八位字节字符串的整数值:353038

+0

请修复此问题中的拼写错误。 –

回答

1

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强制该事实)。

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

2

字节串是一个字节序列。在你的例子中,它由3个字节组成,其值为35,30和38的十六进制值。在一般情况下,你不能以有意义的方式谈论“八位组串的整数值”。在这种情况下,如果将单个字节解释为ASCII,则35个十六进制表示字符“5”,30个十六进制表示字符“0”,而38个十六进制表示字符“8”,因此整个字符串为“508”。

我怀疑在这种情况下,您所查找的“整数值”是508,但请记住,字符串含义的解释很大程度上取决于应用程序。