前言

玩安卓经常刷机的小伙伴可能会发现有些国外的包比如LineageOS等,刷机后会发现Wi-Fi图标有无网络的标识或手机提醒该Wi-Fi无法联网。这是如何产生的呢?

问题分析

因为电脑或手机等网络终端会有一个探测网络连接的机制,当网络连接不可用时及时提示用户。这就是204 机制。那么这个机制是如何实现的呢?

机制分析

  • 安卓手机会请求类似这样的一个地址 http://www.google.com/generate_204 ,如果返回的状态码是204则说明网络连接正常,否则说明网络连接不正常。这个地址是Google提供的,所以国外的包也会使用这个地址来探测网络连接。

  • Mac电脑会请求类似这样的一个地址 http://captive.apple.com/hotspot-detect.html ,如果响应文本 Success 则说明网络连接正常,否则说明网络连接不正常。这个地址是Apple提供的,所以苹果电脑也会使用这个地址来探测网络连接。

  • Windows电脑会请求类似这样的一个地址 http://www.msftconnecttest.com/connecttest.txt ,如果响应文本 Microsoft Connect Test 则说明网络连接正常,否则说明网络连接不正常。这个地址是微软提供的,所以Windows电脑也会使用这个地址来探测网络连接。

问题解决

安卓手机可以根据实际网络环境修改如下地址去解决这个问题。

http://www.gstatic.com/generate_204
http://www.google-analytics.com/generate_204
http://www.google.com/generate_204
http://connectivitycheck.gstatic.com/generate_204
http://connect.rom.miui.com/generate_204
http://connectivitycheck.platform.hicloud.com/generate_204
http://wifi.vivo.com.cn/generate_204

Windows电脑可以根据实际网络环境修改如下地址去解决这个问题。

http://www.msftconnecttest.com/connecttest.txt
http://www.msftncsi.com/ncsi.txt
http://detectportal.firefox.com/success.txt
http://network-test.debian.org/nm

Mac电脑不用折腾,从来没见过Mac有这种问题。苹果还是牛逼哈,用户体验做到极致!

windows推荐GitHub上一个 好用的工具 可以快速修改,不用再自己一个一个注册表项去改了。