[英]Python. Print mac address out of 6 byte string
我有 6 字節字符串中的 mac 地址。 您將如何以“人類”可讀的格式打印它?
謝謝
import struct
"%x:%x:%x:%x:%x:%x" % struct.unpack("BBBBBB",your_variable_with_mac)
沒有必要使用struct
:
def prettify(mac_string):
return ':'.join('%02x' % ord(b) for b in mac_string)
雖然如果mac_string
是一個bytearray
(或bytes
在Python 3),這是一種更自然的選擇,而不是給出的數據性質的字符串,那么你也將不需要ord
功能。
用法示例:
>>> prettify(b'5e\x21\x00r3')
'35:65:21:00:72:33'
在Python 3.8及更高版本中,您可以只使用bytes.hex
。
b'\x85n:\xfaGk'.hex(":") // -> '85:6e:3a:fa:47:6b'
試試,
for b in addr:
print("%02x:" % (b))
其中 addr 是您的字節數組。
s=b'\\x04NZ\\xdf\\x7f\\xab'
1) 導入 struct ssid_2 = "%02x:%02x:%02x:%02x:%02x:%02x" % struct.unpack("BBBBBB", s)
或
2) ':'.join(f'{x:02x}' for x in s)
但是 1) 比 2) 快得多
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.