如何从HTTP请求中获取MAC地址?

时间:2010-07-22 13:06:33

标签: asp.net mac-address

有人可以给我一些关于从HTTP请求中获取用户MAC地址的指示吗?

用户将来自外部我的网络。

3 个答案:

答案 0 :(得分:40)

这取决于您的网络设置。但可能没有。

以下是以太网和IP的简短回顾。 MAC地址是网卡的唯一地址。它用于标识数据包在网段上的哪个用户。您可以使用ARP获取IP地址的MAC地址。 但只有当您在同一网段时才能正常工作。

所以问题是,什么是网段?这取决于您使用的技术,但这是常见的情况。整个无线网络是一个网段。网络上的每个用户都可以通过以太网与其他所有用户通话。在基于线路的网络上,这取决于硬件。如果您拥有良好的旧BNC或集线器,则您拥有一个具有所有用途的网段。每个用户再次可以与任何其他用户交谈。通过网络中的交换机,网段只是将您连接到交换机的电缆。在这里,您只能通过以太网与交换机通信。每个其他用户至少需要IP。

使用基于TCP / IP构建的HTTP的大多数情况太糟糕了,您99.99%从未与您的用户在同一网段中。您可以使用ARP,但只能获取第一跳的MAC地址。它会变得更好,取决于您的硬件,您甚至可能不在基于以太网的IP网络上; ATM例如......

答案 1 :(得分:2)

我认为在ASP.NET中没有办法做到这一点 MAC是TCP数据包的属性,在HTTP级别上没有数据包或MAC(例如,单个HTTP请求可能由多个TCP数据包组合而成)。

您可以尝试使用数据包嗅探器(如WireShark)捕获TCP数据包,然后分析它们以提取MAC并将它们映射到HTTP请求。

无论如何,除非用户与您的服务器位于同一网段,否则您将无法获得任何有用的数据。

UPD。正如评论中指出的那样,我混淆了网络层。 MAC地址是Ethernet frame的属性,而不是TCP数据包 然而,结论仍然是正确的。

答案 2 :(得分:0)

这是不可能的,除非你打算创建一个ActiveX组件,在这种情况下它只能在IE上工作。