我已经查看了所有相关问题以及 Chromium 项目。我有一个可用的 hostapd 接入点和一个可用的 Captive Portal(在 ios 和 mac osx、windows 和 linux 上完美运行)。
但是 - 在 Android 上,即使我看到了对 client3.google.com/generate_204 的请求(我在其中更改了页面内容和响应代码),我也没有得到自动检测。
有任何想法吗?
ps - 如果用户没有登录到我的强制门户,我的软件会通过 iptables 重定向到端口 53 和 80 来工作 - 我对每个响应都使用“192.168.1.1”进行响应 - 这是我的 Apache 服务器。如果我手动在 android 上转到 client3...我会收到 302 并按应有的方式重定向到我的俘虏,但不会触发弹出窗口。如果你去一个有强制门户的地方,它确实可以识别。我可能会错过什么?
答案1
回答一个老问题,但无论如何..我认为你不应该用 302 代码回答 client3.google.com/generate_204 。
只需保留将每个请求重定向到 192.168.1.1 的通常行为,对于 client3.google.com/generate_204 也是如此
如果 Android 在 client3.google.com/generate_204 上找到 302 http 响应,它会假设您已连接到互联网,因此它不会向您显示强制门户弹出窗口。