SNMPGET(SNMPWALK)获取错误的数据类型十六进制字符串

SNMPGET(SNMPWALK)获取错误的数据类型十六进制字符串,snmp,Snmp,在mib文件中,我将一个属性定义为DisplayString。在我的测试用例中,我将这个属性的值设置为null。所以我认为输出是“”,而不是十六进制字符串:01。同时,其他行的同一列为“”。谁能帮我,先谢谢你 例如: SNMPv2-SMI::enterprises.2.3.51.3.1.14.7.1.4.1 = "" SNMPv2-SMI::enterprises.2.3.51.3.1.14.7.1.4.2 = Hex-STRING: 01 SNMPv2-SMI::enterprises.2.

在mib文件中,我将一个属性定义为DisplayString。在我的测试用例中,我将这个属性的值设置为null。所以我认为输出是“”,而不是十六进制字符串:01。同时,其他行的同一列为“”。谁能帮我,先谢谢你

例如:

SNMPv2-SMI::enterprises.2.3.51.3.1.14.7.1.4.1 = ""
SNMPv2-SMI::enterprises.2.3.51.3.1.14.7.1.4.2 = Hex-STRING: 01 
SNMPv2-SMI::enterprises.2.3.51.3.1.14.7.1.4.3 = ""
SNMPv2-SMI::enterprises.2.3.51.3.1.14.7.1.4.4 = Hex-STRING: 01 
SNMPv2-SMI::enterprises.2.3.51.3.1.14.7.1.4.5 = ""
SNMPv2-SMI::enterprises.2.3.51.3.1.14.7.1.4.6 = Hex-STRING: 01

我设置的此列的所有值均为空。

如果该值是十六进制字符串“01”,并且您试图返回零长度字符串(“”),则您没有正确设置返回长度。您需要正确设置数据(在本例中,数据可以是指向不包含任何内容的字符串的指针)和长度(需要设置为0)。对于问题中的某些数据,您将数据长度设置为1


记住,SNMP被设计用来传递任何类型的字节流,包括中间的“0”字节(或更多)。因此,您不能使用以NULL结尾的字符串,并且必须返回字符串的真实长度,因为您可能希望实际返回0x65 0x00 0x65,这对于以NULL结尾的字符串是不可能的,除非您可以将长度设置为3。

首先将MIB文档放在适当的文件夹中,以便SNMP实用程序可以加载它们。然后,您可能会看到更好的显示,而不是您粘贴的显示。第二,如果任何值不是您所希望的,则转到数据包级别。