如何在Web应用程序中获取Client Machine的Mac地址

时间:2012-03-28 08:52:42

标签: asp.net networking

我必须获取运行我网站的客户端PC的Mac地址。那么如何获取客户端机器的Mac地址(而不是托管网站的服务器Mac地址)。我需要与IE,Firefox,Safari和Chrome兼容的脚本。

3 个答案:

答案 0 :(得分:8)

实现这一目标的唯一方法是使用applet或插件,例如可以在java中编程(虽然java本身可能不允许根据Getting MAC address on a web page using a Java applet),因为javascript自然不会透露这种信息。最后,如果它在内部网络上,您也可以从服务器端找到这些信息,这通常是通过半私有wifi网络登陆页面完成的。

基于以下评论:由于它是内部网络,您可以在asp.net端按如下方式检索mac地址。执行以下命令arp -a,它将返回所有具有相关mac地址的ip地址列表。接下来使用

的内容
Request.Servervariables("REMOTE_ADDR")

你应该能够找到下一个与你从arp命令中检索到的数据匹配的用户IP地址,瞧,你有当前用户的mac地址。

答案 1 :(得分:7)

  

我有一些情况允许一些用户从一些固定的PC(for   admin输入的MAC地址将与系统匹配   用户尝试登录),他/她将无法从其他人登录   比那些PC

要以正确的方式实现上述目标,您应该依靠客户端证书来执行身份验证。如果未显示有效的客户端证书,则该请求将被拒绝。

您可以使用客户端证书@ http://support.microsoft.com/kb/315588

找到有关保护网站的更多信息

如果用户位于内部网络中,则对其进行身份验证的首选方法是使用http://support.microsoft.com/kb/323176所述的集成Windows身份验证,授权将基于访问控制列表

答案 2 :(得分:2)

听起来这是一个内部网络。

另一种方法是通过使用mac地址,dhcp服务器可以分配特定的ip范围。然后,您可以在服务器代码中检查该IP范围。没有办法在javascript中获取mac地址,但你可以轻松获得ip。也许你的dhcp服务器可以发布你的web服务器的mac地址ip地址表,可以通过api或其他东西使用 - 不确定但是可能值得研究。