android - 使用 Android 手机作为 wifi 网络服务器

标签 android android-wifi

我有一个疯狂的想法,我不知道是否可行...我想做的是将我的手机设置为 wifi 接入点,然后允许人们连接到它,但处理所有传入的 http 流量我自己。

所以:

  • 接入点模式下的手机 wifi;打开 wifi 网络(这个花絮有效 - 是的,我知道它没有得到官方支持,但我无意将这个应用程序发布到公开市场左右,它可以在我的手机上运行,​​这对我来说已经足够了)。

  • 客户端可以连接到手机(例如我的笔记本电脑:这也可以)。

  • 当客户端尝试打开到任何随机服务器的 http 连接时,这必须被我的应用拦截并由本地网络服务器处理。这是我坚持的观点。

网络服务器部分应该不会太难;有(开源)网络服务器可用。但是让流量到达该 Web 服务器,就会出现问题。

我所追求的行为有点类似于连接到某些开放热点(如酒店热点)时所获得的行为,然后将您重定向到登录页面。这种对连接请求的拦截(我怀疑我必须查看 DNS 请求?)就是我所追求的。

我看到有一个应用程序可以执行此操作,但它们需要手机获得 root 权限。我希望找到一种无需对手机进行 root 操作的方法。

最佳答案

Wifi 热点通常会使用 IPTables 将端口 80/443 流量重定向到本地 Web 服务器。

我过去在 linux 机器上的 3128 端口上运行过 squid,然后将所有 80/443 端口的流量发送到 squid。然后我使用 squid 将我没有明确允许的任何 url 重定向到本地 Web 服务器。

IPTables 只能在 root 的安卓设备上访问。

而且我怀疑 android 上是否有很多可用的代理服务器,因此您必须通过网络连接将 HTTP 流量发送到代理服务器。

关于android - 使用 Android 手机作为 wifi 网络服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5353911/

相关文章:

android - 如何检测安装了加速度计的安卓设备的左右倾斜?

android - 可视化wifi信号强度

android - WifiInfo 返回 null

android-wifi - WiFi Peer Discovery 的 Android O 问题

java - Android EditText动态高度以编程方式

android - 如何从本地json文件中获取数据?

java - Android 对手电筒模式的支持

android - ClassCastException 在设置 ListView Header 时无法将 LinearLayout$LayoutParams 转换为 AbsListView$LayoutParams

Android 绕过强制门户

android - 通过蓝牙重启 Android 手机?