【发布时间】:2017-06-22 00:59:59
【问题描述】:
我正在尝试使用 python 3.x 和 puresnmp 模块获取 cisco 交换机的 arp 表。
执行 SNMP walk 时返回给我的值之一的示例。
value_returned = b'\x00!V\x12\x9a\xc1h'
我尝试使用以下方法对其进行解码:
mac = b'\x00!V\x12\x9a\xc1h'
a = mac.decode('UTF-8')
但我收到以下错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9a in position 4: invalid start byte
如何将返回的值转换为字符串。我会转换为字符串还是十六进制?
【问题讨论】:
-
嗯?如何获取字节文字作为 SNMP 响应?
-
@EJP 我不知道这只是返回给我的东西。我假设我正在使用的 snmp 模块是造成这种情况的原因。你为什么问我这个问题?
-
SNMP 使用 ASN.1 (en.wikipedia.org/wiki/Abstract_Syntax_Notation_One) 传输数据。返回的数据是某种 ASN.1 数据吗?我尝试通过一些 ASN.1 解码器运行它,但它不起作用。是什么给了你这些数据?
标签: python-3.x network-programming snmp