Преобразование шестнадцатеричного MAC-адреса в читаемый пользователем формат (Python)

Я получаю из сокета MAC-адрес в следующем формате: 0024e865a023 (шестнадцатеричный, преобразованный из двоичного с помощью полученной строки.encode («шестнадцатеричный»))

Я хотел бы преобразовать его в читаемый пользователем формат, например: 00-24-e8-65-a0-23

Любой простой способ сделать это?


person nabs1    schedule 17.08.2010    source источник


Ответы (1)


Вы можете разбить MAC-адреса на массив каждого блока, а затем соединить их на -:

mac = '0024e865a023'
blocks = [mac[x:x+2] for x in xrange(0, len(mac), 2)]
macFormatted = '-'.join(blocks)
person Michael Mrozek    schedule 17.08.2010
comment
просто x перед диапазоном слишком много, но для редактирования требуется не менее 6 символов ... ;) - person John; 25.02.2016
comment
@Джон Не уверен, что ты говоришь; xrange это просто range в Python 3, если это проблема, с которой вы столкнулись. Они переименовали xrange в range и избавились от старой версии range. - person Michael Mrozek; 25.02.2016
comment
твое право. Я не работал с Python 2 и в первый момент подумал, что это опечатка. Во всяком случае, это решило и мою проблему. Спасибо! - person John; 25.02.2016