是否有库函数来检查MAC地址是否是多播的?

时间:2015-01-02 09:24:55

标签: python mac-address

我知道我可以使用netaddr模块来检查IP地址是否是多播的,如下所示:

netaddr.IPAddress("192.168.1.1").is_multicast()

在我继续编写自己的版本之前,是否有各种格式的MAC地址具有可比性的功能?

例如:

0123.4567.89ab

2 个答案:

答案 0 :(得分:3)

完整性:检查此功能的“功能”就像

一样简单
>>> mac = netaddr.EUI('0123.4567.89ab')
>>> mac_is_multicast = bool(mac.words[0] & 0b01)  # Is LSB set?

同样,您可以检查MAC地址是否在本地管理

>>> mac = netaddr.EUI('0123.4567.89ab')
>>> mac_is_locally_administered = bool(mac.words[0] & 0b10)  # Is 2nd LSB set?

答案 1 :(得分:0)

多播地址在最高有效字节的最低有效位中具有1。在十六进制表示中,这意味着第二个半字节是奇数(因为MAC地址是小端)。除了ffff.ffff.ffff是广播地址。

http://bradhedlund.com/2007/11/21/identifying-ethernet-multicast/