首页 > 解决方案 > 强制门户出现需要什么响应?

问题描述

我正在尝试在小型嵌入式设备上实现强制门户。

据我了解,我需要的只是捕获对特殊 url 的智能手机请求并发送包含强制门户页面的响应。为了不维护所有可能的 URL 列表,我设置了一个 DNS,它将所有主机解析为我的设备 IP。

现在,当我将 android 设备连接到我的网络时,我会收到一个请求/generate_204并发送重定向响应。以下是 curl 命令的请求和响应示例:

curl -v http://google.com/generate_204 

*   Trying 192.168.1.1...
* Connected to google.com (192.168.1.1) port 80 (#0)
> GET /generate_204 HTTP/1.1
> Host: google.com
> User-Agent: curl/7.47.0
> Accept: */*
> 
< HTTP/1.1 302 Found
< Content-Type: text/html
< Content-Length: 0
< Location: /
< 
* Connection #0 to host google.com left intact

使用 Postman/Chrome 我被重定向到 192.168.1.1/ 并加载了所需的页面。但是我测试了 4 台安卓设备,只有一台向我展示了一个弹出窗口。ios也有同样的问题。/hotspot-detect.html我收到了一个返回与上述相同响应的请求,但什么也没发生。我在这里想念什么?

谢谢!

标签: androidioshttpcaptivenetworkcaptiveportal

解决方案


我的理解是,如果您返回的不是强制专用门户测试站点返回的内容(即,如果是请求的 URI 或http://captive.apple.com ,则http://google.com/generate_204返回的内容) //hotspot-detect.html如果那是请求的 URI,则返回)然后将显示您返回的内容,即所谓的闪屏。返回这些 URL 所返回的内容应该会抑制启动屏幕,并让设备误以为它已连接到 Internet。


推荐阅读