我有一个十六进制数0x000e96a001064d60
。我需要将其转换为mac地址。我被告知这代表IEEE_Complete地址。
在我看来,这里看起来似乎太多了。如何将其转换为MAC地址
我试过了
value = value[2:] if len(value) % 2 == 0 else "0" + value[2:]
return ":".join(value[i:i+2] for i in range(0, len(value), 2))
我得到的是
"00:0e:96:a0:01:06:4d:60
对我来说,成为MAC address
答案 0 :(得分:0)
使用RegEx分割字符串的一种方法:
import re
v = 0x000e96a001064d60
s = '{0:016x}'.format(v)
s = ':'.join(re.findall(r'\w\w', s))
print(s)
# -> 00:0e:96:a0:01:06:4d:60
或者,没有RegEx:
v = 0x000e96a001064d60
s = '{0:016x}'.format(v)
s = ':'.join(s[i:i + 2] for i in range(0, 16, 2))
print(s)
# -> 00:0e:96:a0:01:06:4d:60
经典MAC地址有6个字节。这是EUI-48地址。 但是在这里,你有8个字节。所以它看起来像一个EUI-64地址。但是,字节4和5应该是FF:FE ...
答案 1 :(得分:-1)
0x000e96a001064d60
代表 EUI-64 identifier 。 猜不是,EUI-64需要FFFE
作为中间字节。
EUI-64标识符用于:(source)
要在Python中将该数字转换为MAC格式,请使用:
mac = '0x000e96a001064d60'
mac = mac.split('x')[1].zfill(16)
':'.join(''.join(x) for x in zip(*[iter(mac)]*2)
输出:
00:0e:96:a0:01:06:4d:60