0
(Pdb) p mac
'\xd0\xbf\x9c\xd8\xf0\x00'
p type(mac)
<type 'str'>

使用 Python2.7,如何提取和打印准确的 MAC 地址?在 .proto 消息中,mac_address 被定义为“可选字节 mac”。

4

3 回答 3

0

这也许?

>>> mac_str = ':'.join("{:02x}".format(ord(c)) for c in mac)
>>> print(mac_str)
d0:bf:9c:d8:f0:00

如果您只想要整数列表,请执行以下操作:

mac_decoded = [ord(c) for c in mac]

不知道你所说的“解码”是什么意思......

于 2017-05-06T12:34:24.797 回答
0
':'.join([hex(c)[2:] for c in map(ord,'\xd0\xbf\x9c\xd8\xf0\x00')])

印刷:

'd0:bf:9c:d8:f0:0'

基本上,这一行将十六进制字符串转换为 0 到 255 范围整数的列表,然后将每个元素 c 转换回不带 '\x' 字符的十六进制字符串,然后将列表元素连接为带有 ' 的字符串: '介于两者之间。

于 2017-05-06T12:40:18.227 回答
0
import struct
a='\xd0\xbf\x9c\xd8\xf0\x00'
for i in range(6):
  print hex(struct.unpack("B", a[i])[0])[2:], ":",

印刷

d0 : bf : 9c : d8 : f0 : 0 :
于 2017-05-06T11:51:21.007 回答