我的应用程序查询运行它的客户端计算机的 mac 地址,并将其存储在服务器上。当我分析服务器数据库时,我发现一些 mac 地址重复了 100-150 次。即,不同不相关组织中的不同客户端计算机具有相同的 mac。因此,一些 mac 地址非常“流行”。它们也以某种方式出现在谷歌搜索结果中。例如 58-2C-80-13-92-63。为什么会发生这种情况?
详细信息:我的应用程序在 Windows 上运行,客户端计算机属于不同的组织,位于不同的城市。我的应用程序连接到 Web 服务器,并在其中存储一些统计信息(例如 mac 地址)。
答案1
这个例子(58-2C-80-13-92-63
)是华为生产的 USB 以太网芯片。看起来他们很懒,重复使用了 MAC。Google 的示例:
[50413.229125] cdc_ether 2-1:1.0: eth1: register 'cdc_ether' at usb-0000:00:1d.7-1, CDC Ethernet Device, 58:2c:80:13:92:63
…
[ 122.660069] huawei_cdc_ncm 3-3:1.1 wwan0: register 'huawei_cdc_ncm' at usb-0000:00:14.0-3, Huawei CDC NCM device, 58:2c:80:13:92:63
其他情况也可能是虚拟机被传来传去的情况。但最有可能的解释(正如其他人所说)是硬件很便宜。
为了弄清这一点,请检查 MAC 是否(标记为)全局唯一或本地管理的:https://en.wikipedia.org/wiki/MAC_address#Address_details
58:2c:80:13:92:63
理论上的地址应该具有全球唯一性:
0x58 → 1011000
但虚拟机(例如)的 MAC58:2c:80:13:92:63
不会:
0x52 → 1010010
答案2
您只能在本地网络中看到不同的 mac 地址。当 IP 数据包通过路由器时,源主机的 mac 地址会更改为路由器输出接口的 mac 地址。这就是为什么您会看到许多 IP 地址(不是来自您的本地网络)具有相同的 mac 地址。