0

看着这个相关的 SO question,我不禁想知道 MAC 地址的唯一性。

MAC地址有多独特?

我正在使用它们来半唯一地识别用户。我有一个网站,几乎任何设备(PC、Mac、iPhone、Android 手机等)和任何操作系统的用户都可以通过 HTTP 请求访问。我使用 IP 地址和 MAC 地址的组合来识别唯一用户。

我假设可能存在以下情况:

  • 设备没有 MAC 地址(不太可能,当然,但无论如何)
  • 设备具有唯一的 MAC 地址
  • 一个设备有多个唯一的 MAC 地址
  • 两个或更多设备具有相同的 MAC 地址

前三种情况是唯一的(第三种是因为我只需要一个唯一的 MAC 地址)。对于第四种情况,这种可能性有多大?

也就是说:给定 100 个随机用户(可能是任何 Windows 操作系统的 Windows 用户),我可以期望其中有多少人拥有相同的 MAC 地址?仅仅是因为MAC地址的长度有限吗?还是依赖于某种有目的的配置更改(MAC 地址欺骗)?

我可以接受 MAC 地址是半唯一的,我只是想弄清楚如何解释数据。

(我在针对 .NET 2.0 的链接问题中使用针对 .NET 2.0 的 C# 代码。)

4

3 回答 3

3

这仅适用于同一网络。

MAC 地址使用 ARP 在本地解析,以在硬件级别路由本地数据包。ARP 不是可路由协议,不能跨子网解析。

如果您的网络服务器位于具有端口映射的路由器后面,并且所有传入的流量都来自该路由器,那么每个连接似乎都来自路由器的 MAC 地址,您不会“看到”路由器的 MAC 地址原始机器,除非你能以某种方式通过网页来获取它(我不是网络天才,所以不要问我那个,但我猜你需要在 Java 客户端进行一些繁重的工作,或其他类型的主动组件来询问本地机器,更容易使用 cookie)

您可以找到进行传出 NAT 的远程计算机的公共 IP 地址,但再一次,可能有多个设备从路由器后面连接,这将限制此方法的实用性,这意味着需要查看 IP数据包,我不知道您如何从 Web 服务器执行此操作(可能不能?)。

无论如何,这就是 cookie 的用途,一种在远程机器上留下标识符的方式,这样您就可以看到流量来自哪里。如果人们不接受 cookie,除非您开始变得非常有创意,否则您将无法唯一识别它们。

(顺便说一句,Mac 地址总是唯一的(好吧,你偶尔可以找到一个重复使用的 MAC,但它非常罕见,或者至少需要网络才能工作!),这就是它们的目的,在这种情况下它没有多大帮助如果您不在同一个网络上)

于 2012-12-05T01:37:40.323 回答
1

100 个随机用户(可能是任何 Windows 操作系统的 Windows 用户),我可以期望其中有多少具有相同的 MAC 地址?

零。当它们在同一个网络中时,它们无法与相同的 MAC 地址进行通信,因为以太网使用它们来查找计算机。它们非常独特。网卡生产商获得他们可能分配给其产品的地址范围。

但是:有一些方法可以操纵您的 MAC 地址,并且在某些情况下人们会这样做!例如,当您想进入一个仅限于某些 MAC 地址的网络时,您可以自己操作以匹配其中一个(如果您发现,哪些在白名单上)。由于我不知道您的 szenario 是什么(您要完成什么),所以我无法告诉您这是否与您有关。

于 2012-06-04T10:07:18.863 回答
0

您只需要了解 MAC 地址(可以更改)和硬件标识符 [确切地说是您的网络接口控制器](由其制造商永久分配)之间的区别。

MAC 地址是您的设备连接到互联网时的名称(通过 rooter 或交换机)。您可以更改您的 MAC 地址,但默认情况下,此 ID 使用网络接口控制器 (NIC) 制造商分配的标识符(例如您的 Wifi 天线)

Exemple: I've changed my MAC address for my two computers using the same MAC Address: 00:01:02:03:04:06. My computers seems to be the same when connected to the same router but the identifier of their wifi antena remain unchanged and different.

于 2014-08-12T20:04:35.337 回答