Python. Распечатать MAC-адрес из 6-байтовой строки - PullRequest
6 голосов
/ 10 февраля 2011

У меня есть MAC-адрес в 6-байтовой строке.Как бы вы распечатали его в удобном для чтения формате?

Спасибо

Ответы [ 5 ]

9 голосов
/ 10 февраля 2011
import struct
"%x:%x:%x:%x:%x:%x" % struct.unpack("BBBBBB",your_variable_with_mac)
8 голосов
/ 10 февраля 2011

Нет необходимости использовать 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'
3 голосов
/ 10 февраля 2011

Try,

for b in addr:
    print("%02x:" % (b))

Где addr - ваш байтовый массив.

0 голосов
/ 06 декабря 2018

s = Ъ '\ x04NZ \ XDF \ x7f \ Xab'

1) структура импорта ssid_2 = "% 02x:% 02x:% 02x:% 02x:% 02x:% 02x"% struct.unpack ("BBBBBB", s)

или

2) ':'. join (f '{x: 02x}' для x in s)

но 1) намного быстрее, чем 2)

0 голосов
/ 10 февраля 2011

Является ли обычный шестнадцатеричный формат недостаточно понятным для человека?( см. , чтобы узнать, как преобразовать байт в шестнадцатеричный код)

de:ad:be:ef:ca:fe

Кстати, именно так MAC-адреса отображаются в большинстве программ (только Windows использует тире вместо двоеточий).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...