gpt4 book ai didi

c - 解释 SNMP GET REQUEST 消息的 OID 部分的十六进制

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:42 25 4
gpt4 key购买 nike

所以我一直致力于在 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,但我还没有看到原因。

最佳答案

前两个数字(在您的情况下为 1.3)编码不同。计算将是:

1*40 + 3 = 43(十进制)= 2B(十六进制)。

这就是你的 2B 的原因。

阅读this获取更多信息。和 here是一个在线编码/解码工具。

关于c - 解释 SNMP GET REQUEST 消息的 OID 部分的十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43708686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com