所以我一直致力于在linux上编写SNMP版本的SNMPGET请求。我打开一个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获取消息都以这种方式发送,其中iso.org转换为2B,但我还没有看到原因。