获取ASP.NET MVC中的MAC地址,限制对已注册设备的访问

时间:2015-07-18 06:46:56

标签: c# asp.net-mvc

我需要在ASP.NET MVC C#中创建一个允许我限制对计算机注册用户的访问的站点,最好的方法是什么,获取MAC地址?怎么样?

2 个答案:

答案 0 :(得分:0)

由于客户端和网站之间没有直接链接,因此无法获取客户端Mac地址。 Mac地址位于客户端的以太网物理层,您无法直接访问其硬件配置。我认为你能得到的最好的是通过以下方式获取客户端IP地址:

String clientIpAddress = Request.UserHostAddress;

但即便如此,如果" iffy"因为它位于客户的ISP网关之后,实际的计算机可能会连接在路由器或防火墙后面。

如果客户是注册用户,您可能希望根据您定义的登录记录限制访问。

答案 1 :(得分:0)

MAC地址仅在网络堆栈中的较低级别可用。在OSI网络模型中的数据链路层使用MAC地址。它仅适用于直接连接(意味着,您的PC知道路由器的MAC,并且您的路由器知道您的PC和ISP的路由器的MAC)。当我们通过Internet进行通信时,我们将与OSI堆栈中处于更高级别的IP地址进行通信。当您连接到Google.com时,直接连接到Google并不会从您的PC发送到Google.com。中间可能存在数十个跃点。 Google看到的MAC地址是实际与其服务器建立物理连接的路由器的MAC地址,而不是您的服务器。这样它就可以将消息发送回该MAC。那MAC然后转发到下一个最接近的跳的MAC,一直回到它最终让你的ISP与你的调制解调器的MAC通信,它与路由器的MAC通信,然后到你的PC的MAC。

即使有可能通过互联网(它肯定不是这样),这也是一个糟糕的主意。我在过去20年中看到的每个路由器都有一个称为MAC欺骗的功能。您可以将MAC地址设置为您想要的任何内容,这使其成为一种糟糕的安全机制。如果要限制对网站的访问,请使用用户名和密码或证书。您可以像其他人建议的那样使用IP地址,但根据您的使用情况,请记住Internet上的大多数用户都有动态IP地址,因此无法确保他们每次连接时始终拥有相同的IP到你的服务器。