根据Obtain client MAC address in ASP.NET Application,这是不可能的。我并不完全相信,因为每当我连接Tim Hortons WiFi时,我的MAC地址都是已知的。
有时,网络很慢,我在重定向到Connect页面之前看到这样的URL:
http://timhortonswifi.com/cp/tdl3/index.asp
?cmd=login
&switchip=172.30.129.73
&mac=60:6c:66:17:1a:83
&ip=10.40.66.229
&essid=Tim%20Hortons%20WiFi
&apname=TDL-ON-NEP-02177-WAP1
&apgroup=02177
&url=http%3A%2F%2Fweather%2Egc%2Eca%2Fcity%2Fpages%2Fon-72_metric_e%2Ehtml
因此,根据此URL,该站点知道路由器的IP地址,我的MAC地址,路由器分配给我的设备的IP地址,网络SSID,一些其他信息以及我尝试的URL在连接之前访问。
有两种选择:Tim Hortons WiFi Basic和Tim Hortons WiFi Plus,其中" Plus"选项允许我使用此设备自动连接到加拿大的任何Tim Hortons WiFi接入点。注册需要一个电子邮件地址,所以我假设这可以通过检查MAC地址并将其存储在路由器在连接时ping的数据库中来实现。 More info here.
根据本页的扩展名,我可以放心地认为它是ASP。他们如何获得这些信息?
答案 0 :(得分:2)
当您的客户端流量到达第一个路由器时,该路由器会将流量路由到适当的端口,使用自己的MAC地址更改响应MAC地址,以便将答案路由到该路由器。这将发生在数据包经过的每个路由器上。因此,最后,Web服务器将只看到将发送答案的最后一个路由器的MAC地址路由回上一个转子,并且此过程一直重复,直到答案到达客户端。
不,无法从服务器端获取客户端的MAC地址。
但是,您看到的是客户端将其信息发送到服务器。因此,答案可以转换为"如何获取本地mac地址并将其发送到服务器?"。
浏览器不允许阅读此信息。一些正确签名/配置的ActiveX或Java小程序可以执行此操作,但可以阻止它们,或者您可以使某些设备不执行java或activex,因此这不是一种可行的方法。
在您的帖子中,最简单的方法是配置wifi访问点dhcp或dns服务器以提供代理配置文件,该文件将允许配置重定向到所需的Web服务器,已创建的重定向在接入点内部,其中包含您帖子中显示的所有信息。