我正在使用我的android设备作为移动web服务器。我想引导每个通过我的便携式Android热点连接到特定wellcom页面的用户。
有人知道如何在我的设备中实现这项技术吗(我相信这被称为捕获门户技术)?
我回答自己的问题,直到有人分享了一些关于如何在非根设备中实现捕获门户的有用信息。
目前我还不知道这样的可行解决方案。
Captive门户的工作原理是拦截大多数网络数据包(使用防火墙),无论地址或端口如何,直到用户打开浏览器并尝试访问网络。此时,浏览器被重定向到可能需要身份验证等的网页。
因此,要想有一个专属门户解决方案,许多部分(如软件防火墙/路由器/网络服务器)需要集成和协作。考虑到目前非root手机的限制/权限,我现在认为这样的应用程序不太可能存在
@mmm2006:然而,如果你确实有一个根设备,那么像Paywall这样的应用程序可以帮你。
您还可以尝试实现自己的专属门户解决方案。这并不简单,但由于Android是基于Linux内核的,您可以尝试以下操作:
- Linux上使用PHP和iptables防火墙的Captive Portal
- 使用iptables和PHP创建专属门户
Captive Portal现已在Android 11-API 30级中推出。一定要看看这个新功能。Captive门户-API 30级-新功能
我不确定是否要在安卓设备上这样做(我在这里搜索了如何禁用安卓检查capture),但我在树莓派上设置了dnsmasq
,使用hostapd
作为WiFi接入点运行,这样所有流量都会到达设备(然后使用nginx提供默认页面或特定于域的虚拟主机设置)。
这似乎触发了我的Android 7.0相信有一个吸引人的门户网站(奇怪的是,它将我引导到吸引人的.apple.com,它向我显示了我的默认URL)。
也许这将帮助您评估实现类似功能所需的底层linux系统组件。很抱歉,它没有完全回答你的问题。
android从棉花糖开始处理捕获门户以获取更多详细信息,请访问https://developer.android.com/reference/android/net/CaptivePortal.html
在您的应用程序启动器活动中添加"android.net.con.CAPIVE_PORTAL"意向过滤器