解释 SNMP GET REQUEST 消息的 OID 部分的十六进制
Explain the hex of the OID portion of an SNMP GET REQUEST message
所以我一直在编写 linux 上 SNMPGET 请求的 C 版本。我打开一个 UDP 套接字,形成消息,然后将其发送出去,只是为了不断收到说找不到 OID 的回复。我使用的 OID 是:
1.3.6.1.2.1.1.1.0
十六进制:
00 03 06 01 02 01 01 01 00
在对 snmpget 发送的数据包进行 运行 tcpdump 之后,我意识到即使使用相同的 OID,发送的数据包实际上包含十六进制:
2B 06 01 02 01 01 01 00
当我用我的程序尝试十六进制时,它起作用了。那么,问题来了,为什么是 2B 而不是 01 03?我到处都看过,但我无法理解它的逻辑。似乎每个 SNMP get 消息都是以这种方式发送的,其中 iso.org 转换为 2B,但我还没有看到原因。
所以我一直在编写 linux 上 SNMPGET 请求的 C 版本。我打开一个 UDP 套接字,形成消息,然后将其发送出去,只是为了不断收到说找不到 OID 的回复。我使用的 OID 是:
1.3.6.1.2.1.1.1.0 十六进制: 00 03 06 01 02 01 01 01 00
在对 snmpget 发送的数据包进行 运行 tcpdump 之后,我意识到即使使用相同的 OID,发送的数据包实际上包含十六进制:
2B 06 01 02 01 01 01 00
当我用我的程序尝试十六进制时,它起作用了。那么,问题来了,为什么是 2B 而不是 01 03?我到处都看过,但我无法理解它的逻辑。似乎每个 SNMP get 消息都是以这种方式发送的,其中 iso.org 转换为 2B,但我还没有看到原因。