Wifi 热点,为什么操作系统没有将我检测为强制门户?

Wifi 热点,为什么操作系统没有将我检测为强制门户?

我的项目是制作一个 Wifi 强制接入点。 也就是说,一旦你连接了这个 wifi 热点,你就不能上网了,只能访问本地网站。我做到了,当你访问任何域名、任何 IP 以及所有可能的端口时,客户端都会重定向到本地网站。它有效。是的。

除非我哪里错了,否则它是 100% 被俘虏的。没有 IP 转发,就无法访​​问互联网。

然而,操作系统并不认为我是强制门户我测试过的操作系统(Mac OS X、iOS、Android)似乎没有将其视为俘虏。因此我得到弹出/闪屏/通知。 (Apple CNA:我已了解相关信息,并且 Assistant 应该会显示有关我配置的重定向的信息)。

有人能提供大量帮助吗?我是否遗漏/误解了某些内容,导致被检测为有围墙的花园

谢谢您的任何帮助。

编辑 ___________ 在控制台中,当 Mac OS X 加入 Wifi Spot 时我得到了下面几行:

UserEventAgent[40]: Captive: CNPluginHandler en1: 已通过身份验证

UserEventAgent[40]: Captive: [CNInfoNetworkActive:1709] en1: SSID‘MyWifiTest2’未使接口成为主接口(无缓存条目)

UserEventAgent[40]: Captive: CNPluginHandler en1: 正在评估

UserEventAgent[40]: Captive: en1: 未探测“MyWifiTest”(缓存指示未捕获)

类似的问题@https://discussions.apple.com/thread/6251349“因此,我们发现缓存不再是问题,但探测器出现了问题(即,当 Captive Network Assistant 请求 Apple 成功网页时),在错误状态下,它会假设我们处于在线状态,但实际上并非如此。这似乎也存在问题。有点搞笑的是,一旦计算机假设它处于在线状态,我所有的后台小进程就会开始发出请求,我可以在那些进程抛出的错误中看到强制门户登录页面标记的转储。”

库/首选项/系统配置/CaptiveNetworkSupport/Settings.plistProbeURL 是:

http://captive.apple.com/hotspot-detect.html

答案1

虽然您的问题涉及其他操作系统,但看看 Windows 如何检测强制门户可能会为您找到解决方案。

为了检测强制门户是否存在,Windows 会对 dns.msftncsi.com 执行 DNS 查找请求。此 DNS 地址应解析为 131.107.255.255。如果 DNS 解析失败(解析为 0.0.0.0),或者解析的 IP 不正确,则假定 Internet 连接无法正常运行。如果 DNS 查询解析正确但页面无法访问,则假定 Internet 连接正常,但 DNS 请求被重定向到浏览器内的身份验证页面(强制门户)。

详情请参阅以下博客:http://blog.superuser.com/2011/05/16/windows-7-network-awareness/

答案2

WispR对我来说,自从我的页面采用了 xml 标准之后,它就一直起作用了。

如果没有这个,我的门户将被 Android 而不是 iOS 检测到......

答案3

我在这方面取得了进展,因此我回答了我的问题。

在 Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plist 中 ProbeURL 是: http://captive.apple.com/hotspot-detect.html

首先,这不是真正的探测网址。每次尝试时,探测网址都是唯一的。甚至有关 200 个 Apple 网址的传言也是错误的。每次 OSX/iOS 探测 Wifi 时,Apple 都会生成一个新的网址。*如果您想避免显示弹出窗口,只需提供成功主体即可。*

然后,100%被俘虏还不够。重定向只是问题的一半。第二部分是有关 Wifi 的协议问题,您必须了解它,有关 wifi 漫游等。

相关内容