Python. 从6字节字符串中打印MAC地址

7 投票
6 回答
15276 浏览
提问于 2025-04-16 11:35

我有一个6字节的字符串,它是一个MAC地址。请问我该如何把它打印成“人类”能读懂的格式呢?

谢谢

6 个回答

9

Python 3.8及以上版本中,你可以直接使用bytes.hex这个功能。

b'\x85n:\xfaGk'.hex(":") // -> '85:6e:3a:fa:47:6b'
12

其实不需要用到 struct

def prettify(mac_string):
    return ':'.join('%02x' % ord(b) for b in mac_string)

不过,如果 mac_string 是一个 bytearray(在 Python 3 中也可以叫 bytes),这样比用字符串更合适,因为数据的性质决定了这一点,那么你也就不需要用到 ord 这个函数了。

下面是一个使用的例子:

>>> prettify(b'5e\x21\x00r3')
'35:65:21:00:72:33'
13

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,不知道该怎么解决。比如,有人可能在使用某个特定的功能时,发现它没有按照预期工作。这种情况下,我们通常会去网上寻找答案,比如在StackOverflow这样的论坛上提问或查找相关信息。

在这些讨论中,大家会分享自己的经验和解决方案,帮助彼此理解问题的根源。有时候,问题的解决方案可能很简单,只需要调整一些设置或者更新软件版本。而有时候,可能需要更深入的分析,甚至需要查看代码的具体实现。

总之,编程过程中遇到问题是很正常的,关键是要学会如何寻找帮助和解决方案。通过不断地学习和实践,我们会逐渐变得更加熟练。

import struct
"%x:%x:%x:%x:%x:%x" % struct.unpack("BBBBBB",your_variable_with_mac)

撰写回答