【问题标题】:Obtaining MAC address获取 MAC 地址
【发布时间】:2014-07-24 15:50:25
【问题描述】:

根据Obtain client MAC address in ASP.NET Application,这是不可能的。我并不完全相信,因为每当我连接到 Tim Hortons WiFi 时,我的 MAC 地址都是已知的。

有时,网络很慢,在重定向到连接页面之前,我会看到这样的 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。他们如何获得这些信息?

【问题讨论】:

  • 我猜他们正在使用 Active X 控件或 java 小程序
  • @AardVark71 我不这么认为,因为据我所知,iOS 不支持其中任何一个,但同样的事情也会发生。

标签: asp-classic wifi mac-address


【解决方案1】:

当您的客户端流量到达第一个路由器时,该路由器会将流量路由到适当的端口,使用自己的 MAC 地址更改响应 MAC 地址,以便将应答路由到它。这将发生在数据包经过的每个路由器上。因此,最后,Web 服务器将只看到最后一个路由器的 MAC 地址,应答将被发送回前一个路由器,并重复此过程,直到应答到达客户端。

不,没有办法从服务器端获取客户端的 MAC 地址

但是,您看到的是客户端将其信息发送到服务器。所以,答案可以转化为“如何获取我的本地mac地址并将其发送到服务器?”。

浏览器不允许读取此信息。一些正确签名/配置的 ActiveX 或 Java 小程序可以做到这一点,但它们可能会被阻止,或者您可能有一些不会执行 java 或 activex 的设备,因此这不是一种可靠的方法。

在您的帖子中,最简单的方法是配置 wifi 接入点 dhcp 或 dns 服务器以提供代理配置文件,该文件将允许配置重定向到所需的 Web 服务器,重定向已创建在访问点内,其中包含您帖子中显示的所有信息。

【讨论】:

  • 因此,如果我看到 “客户端将其信息发送到服务器”“浏览器不允许读取此信息”,我的电脑怎么知道要发送信息?没有提示执行 Java 小程序或 ActiveX 控件,其他平台(如 iOS)也不支持这些提示。
  • @rink.attendant.6,当您尝试导航时,您的浏览器会使用接入点发送的代理配置。此代理(在同一接入点内运行)向您的浏览器发送一个重定向,其中填充了所有字段。所有信息都在接入点内检索,发送到浏览器,然后从这里发送到网络服务器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-30
  • 2014-03-20
  • 1970-01-01
相关资源
最近更新 更多