当设备尝试连接到接入点或路由器时,它必须在捕获的门户页面上登录,并显示以下消息:
“登录到Wi-Fi网络”。
接入点/路由器如何识别设备需要登录,其背后的过程是什么?
当设备尝试连接到接入点或路由器时,它必须在捕获的门户页面上登录,并显示以下消息:
“登录到Wi-Fi网络”。
接入点/路由器如何识别设备需要登录,其背后的过程是什么?
Answers:
不同的Android版本之间的检测网址有所不同。
对于棉花糖,它使用Connectivitycheck.gstatic.com/generate_204,在此处检查代码AndroidXRef-棉花糖6.0.0_r1
对于Kitkat,它使用client3.google.com/generate_204检查代码AndroidXRef-KitKat 4.4.4_r1
http://connectivitycheck.gstatic.com/generate_204
实际上返回的204没有内容,并且显然可以工作。也许您只是忽略了Content-Length: 0
标题。
该技术称为“强制门户”。有几种实现。据我所知,Android尝试访问一个generate_204
在Google服务器之一上命名的文件,如果不可能,则会生成通知。
进一步阅读Wikipedia:Captive_portal
https://www.gstatic.com/generate_204
通常通过将所有流量定向到有效的HTTP响应(200)来实现强制门户。此HTTP响应就是强制门户中出现的内容。
可以使用iptables或dnsmasq之类的工具完成此操作。