【问题标题】:Get the MAC of ASP.NET website user获取 ASP.NET 网站用户的 MAC
【发布时间】:2009-08-27 17:56:50
【问题描述】:

我正在寻找一种解决方案来了解使用 asp.net 网站的用户的 MAC 号码。我知道你可以得到一个 IP 地址(不知道为什么,但它不会很复杂)但是我能找出具有 IP 地址的 MAC 地址吗?

编辑:我的意思是在 .NET 中以编程方式(而不是手动)

【问题讨论】:

  • 如何从网络外部获取某人的 MAC 地址?

标签: asp.net mac-address


【解决方案1】:

IP 地址对于路由请求信息的客户端系统和服务器之间的通信是必需的。你可以得到它,因为 IP 地址是从 TCP/IP 堆栈中的较低级别(我相信是第 3 级)中提取的。 MAC 地址对于任何这些都不是必需的,因此它不包含在客户端和服务器之间的通信中。

【讨论】:

    【解决方案2】:

    如果您的网站受信任,您可以在 IE 中执行此操作:
    http://www.devarticles.com/c/a/JavaScript/Advanced-JavaScript-with-Internet-Explorer-Retrieving-Networking-Configuration-Information/1/

    我不希望它适用于任何典型的访问者,只适用于您已经控制的系统的用户,例如在您的本地网络上的用户。如果您可以找到使用 CoCreateGuid 生成 guid 的常见 activex,则在 IE 中可能有第二种方式。它返回部分 guid 中的 mac 地址。不过,我不会打赌找到一个常用的。

    【讨论】:

      【解决方案3】:

      没有机会得到这个抱歉。

      即使您可以尝试获取它也没有任何意义,但当我访问 Internet 上的网站时,我的 MAC 地址永远不会离开我的家庭网络。

      好的,如果用户在同一个 LAN 上,例如在公司内部网中,这可以通过拥有 ip 地址并使用命令行工具(如 arp)来确定。

      ARP 代表地址解析协议,当仅知道主机的 Internet 层 (IP) 或其他网络层地址时,它可用于查找主机的链路层(硬件)地址。

      【讨论】:

      • 虽然没有 ASP.NET,但有几种可能的方法。
      • 同一个公司的同一个局域网
      【解决方案4】:

      Java 6 有一个NetworkInterface#getHardwareAddress() 方法,通常返回相关计算机的 MAC 地址。您可以创建一个小型 Java 小程序来与您的 Web 服务器通信以获取 MAC 地址,尽管有一些方法和方法可以欺骗 MAC 地址。

      【讨论】:

        【解决方案5】:

        您获得的 MAC 地址可能不实用。如果某人有多个网络适配器,那么他们也有多个 MAC 地址。有人拥有两个网络的情况并不少见。 (例如,蓝牙、普通有线和 WiFi 已经是三个。)

        MAC 地址仅用于识别,可以请求。地址解析协议就是为此目的而创建的。通过arping,您可以获得MAC 地址。不幸的是,这仅适用于本地网络,不适用于 Internet。我认为通过使用 IPv6,您可能还有一些选择。虽然我认为它仍然仅限于本地系统。

        获取访问者的 MAC 地址可能被认为是不恰当的,甚至可能是犯罪行为,因为 MAC 地址通常用作唯一标识符。黑客可能会滥用此信息,尤其是当黑客设法获得对用户网络的物理访问权限时。这将允许他冒充用户。您的网站可能会让一些安全专家非常不满...

        http://www.ipaddresslocation.org/find-mac-address.php 有一个他们声称可以工作的 Java 小程序。不过,它不在我的带有 Google Chrome 的系统上。

        【讨论】:

          【解决方案6】:

          我有一个类似的问题(我使用客户端设备 MAC 地址作为针对不同设备上不同内容的密钥)。这个线程很有用。鉴于似乎没有办法隐式执行此操作,我改为将 MAC 地址作为客户端传递给 Web 服务的参数之一。

          (请注意,这不是一个通用的答案,只有在客户端和服务器紧密集成以及可以通过调用传递数据的情况下才有意义。)

          【讨论】:

            【解决方案7】:

            我认为这在任何平台上都不可能。

            【讨论】:

            • 这不是真的。使用 ActiveX、Java 和 ARP 查看上述答案。
            • 我应该澄清一下...一切皆有可能,但很多事情都必须归结为不切实际。看起来您必须在 LAN 上并且在客户端上具有提升的权限。如果他想要 Internet 用户的 MAC 地址,他必须让他们安装一个特殊的客户端 - 这是可能的,但根本不实用。
            • 没有人询问实际的解决方案。我在我的本地局域网中需要它,并且我对这些限制非常满意
            猜你喜欢
            • 2013-04-06
            • 1970-01-01
            • 1970-01-01
            • 2010-11-21
            • 1970-01-01
            • 1970-01-01
            • 2010-12-11
            • 1970-01-01
            相关资源
            最近更新 更多