如何通过一个网址,判断当前设备的网络类型( 3G wifi)?

2016-06-01 14:16:01 +08:00
 dbfox
我能想到的是通过获得 IP (通过 IP 可以得知是电信、还是移动、联通的)
还有没有其它办法?
2570 次点击
所在节点    问与答
10 条回复
4679kun
2016-06-01 14:18:10 +08:00
ipip.net 实测能识别 3G
loyd1234
2016-06-01 14:55:41 +08:00
@4679kun 403
4679kun
2016-06-01 14:58:51 +08:00
notgod
2016-06-01 17:10:30 +08:00
首先
前端是肯定无法判断的
只能另想办法,能收集到的数据 就是 UA 和 IP 地址
所以只能根据 IP 地址来判断设备网络类型

基于 IP 数据库的准确性 这个判断准确性并不高
因为 IPv4 地址已枯竭 经常出现分配给 A 省的 IP 跑 B 省去了
分配给移动的网段和 IP 池 也会分配给部分 wifi 热点 在大城市这个问题尤其突出
根据你的需求
判断电信联通移动这种结果用处并不大

结论 除非你有内部的 API 得到内部的 IP 池分配表
否则基本不太现实
BOYPT
2016-06-01 17:13:31 +08:00
要是做微信里面浏览器的话 UA 里面有说现在是 Wifi 还是 3G
newbieo0O
2016-06-01 17:23:43 +08:00
@notgod 不要太早下结论。 navigator.connection.type
loading
2016-06-01 17:26:27 +08:00
我用长城宽带,根据 ip ,我一直在广州和天津…
ys0290
2016-06-01 17:32:58 +08:00
然而手机上网都是要回归属地的,虽然我在外地,挨批依然在归属地
notgod
2016-06-01 17:34:31 +08:00
@newbieo0O
也许我能力有限 如果对准确度要求高的 我是没方案

你说的 navigator.connection.type ,这种 API 的标准 并不符合中国网络大环境

主要的原因在于
1. 各种换壳的浏览器 改的原版他妈都不认识 兼容性渣
2. 越新的 W3C 标准 对旧浏览器支持太差 (国内 XP 用户还有很多)
3. 原生接口使用的普及度 需要 IE/火狐 /Chrome 的共同支持才有能力普及和推动
如果从商用产品方向考虑 这种目前基本属于鸡肋 根据以往的 W3C 标准从发布到成熟
要 long time long time long time long time
ncisoft
2016-06-01 17:57:54 +08:00
借助智能 DNS 解析有多点接入的大厂域名?比如 dnspod 的移动解析 D+,可以试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/282742

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX