2015-04-23 61 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,但請記住,字符串含義的解釋很大程度上取決於應用程序。