1. MAC地址是什么?
MAC地址(Media Access Control,介质访问控制)是烧录在网卡(Network Interface Card,NIC)里的,也叫硬件地址,是由48bit位,也即6字节的16进制数组成的。
例如:F0FE6B4F4001
其二进制格式为:
11110000 11111110 01101011 01001111 01000000 00000001
从右到左方向看去 <----- 👀,其中:
-
0~23位(低24位),也即对应的:4F4001,是由厂家自己分配的,称为扩展唯一标识符(Extended Unique Identifier,EUI),是厂家为其生产的每个网卡分配一个全球唯一的全局管理地址。
-
24~47位(高24位)也即对应的:F0FE6B,叫做组织唯一标识符(Organizationally Unique Identifier,OUI)是由IEEE(电气和电子工程师协会)的注册管理机构给不同厂家分配的代码,区分了不同的厂家,一般来说大厂商都会购买多个OUI。
高24位中的标志位:
-
I/G(Individual/Group)位,即第一个字节的bit 0位,字节:F0(1111000 0)中的 0。如果I/G = 0,则是某台设备的MAC地址,即单播地址;如果I/G = 1,则是多播地址(组播 + 广播 = 多播)。
-
G/L(Global/Local,也称为U/L位,其中U表示Universal)位,即第一个字节的bit 1位,字节:F0(111100 0 0)中的 0。如果G/L = 0,则是全局管理地址,由IEEE分配;如果G/L = 1,则是本地管理地址,是网络管理员为了加强自己对网络管理而指定的地址。
2. MAC地址一共分为三类,单播MAC地址、组播MAC地址、广播MAC地址。
- 单播MAC地址:是指第一个字节的最低位是0的MAC地址,代表了一块特定的网卡;
- 组播MAC地址:是指第一个字节的最低位是1的MAC地址,代表了一组网卡;
- 广播MAC地址:是指每一位都是1的mac地址,广播MAC地址是组播MAC地址的一个特例,代表了所有网卡。
3. 根据MAC地址的OUI查询生产厂商信息
1> 获取设备MAC地址的OUI;
2> 根据 OUI 到IEEE组织提供的 OUI列表 中查询;
3> 获得生产厂商信息。
例如,查询以下几款设备的生产厂商信息,具体步骤如下:
b019c6010afc 或 b0:19:c6:01:0a:fc
9801a7a84105 或 98:01:a7:a8:41:05
9ce33facddae 或 9c:e3:3f:ac:dd:ae
1> 获取相应的OUI,如下:
b019c6
9801a7
9ce33f
2> 到 OUI列表 中查询;
OUI列表的数据较多,需滚动加载更多数据后,再去搜索查询OUI。
3> 查询获得生产厂商信息。
B0-19-C6 (hex) Apple, Inc.
B019C6 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
98-01-A7 (hex) Apple, Inc.
9801A7 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
9C-E3-3F (hex) Apple, Inc.
9CE33F (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
可以看到,这几款设备均为苹果公司生产。
MACAddressInfo 一款工具类应用程序,用于查询设备网卡地址的相关信息。