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

Is there a library function to check if a MAC address is multicast?

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

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

在我继续自己写之前,是否有针对MAC地址的各种格式的可比函数?

例如:

0123.4567.89ab

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

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

为了完整性:"function"检查这个就像

一样简单
>>> 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?