2024-06-16 12:07:02 发布
网友
我尝试在python3.4.2中使用val.prettyPrint(),使用pysnmp4.3.1读取oid的值。val.prettyPrint()返回任何类型变量的字符串。所以我接收这个值"b'zeus.snmplabs.com'",它是string类型而不是bytes类型。因此,当我将这些数据发送到服务器时,它将b前缀视为字符串的一部分。这是故意的错误还是功能?在
val.prettyPrint()
"b'zeus.snmplabs.com'"
b
这是一个bug(实际上,在pyasn1中),但是development pysnmp code有一个解决方法。在
请记住,在SNMP(和ASN.1)中,八位字节字符串类型应该携带字节,而不是文本。因此,如果可能,prettyPrint()会尝试将值表示为可打印的7位ASCII字符串。否则它将切换到十六进制表示(0xdeadbeef)。在
在mib中,应该携带文本的SNMP对象通常显式地类型化为文本约定对象。基于MIB信息,SNMP管理器会将协议级别的八位字节字符串值“强制转换”为指定编码(ASCII或UTF-8)的可打印文件,同时忽略所有不可打印的字符。在
这是一个bug(实际上,在pyasn1中),但是development pysnmp code有一个解决方法。在
请记住,在SNMP(和ASN.1)中,八位字节字符串类型应该携带字节,而不是文本。因此,如果可能,prettyPrint()会尝试将值表示为可打印的7位ASCII字符串。否则它将切换到十六进制表示(0xdeadbeef)。在
在mib中,应该携带文本的SNMP对象通常显式地类型化为文本约定对象。基于MIB信息,SNMP管理器会将协议级别的八位字节字符串值“强制转换”为指定编码(ASCII或UTF-8)的可打印文件,同时忽略所有不可打印的字符。在
相关问题 更多 >
编程相关推荐