App 端判断是否是大陆用户的最简洁方式,无需 IP 库

2022-11-20 17:32:45 +08:00
 estk

React Native 为例:

useEffect(()=>{
  let mainLand = true
  axios(
    'http://google.com',
    {method: 'head', timeout: 10_000}
  ).then(({status})=>{
    if (200===status) {
      mainLand = false
    }
  }).catch(()=>{})
}, [])
14178 次点击
所在节点    程序员
92 条回复
AlphaTauriHonda
2022-11-21 14:35:28 +08:00
上面这些 IP 属于大陆,Cloudflare 的 loc 也应该是 cn ,不过这些 IP 能访问 Google ,而且它们连接墙内墙外都不会过墙。
所以用这些 IP 上网的人属于大陆用户吗?
x1aoYao
2022-11-21 14:35:54 +08:00
@aladdinding 嗯。我用 rust 写过一个根据这 5 大 RIR 公开数据,解析成一个区间树(底层就是 B-Tree),用来查找 IP 对应的国家 /地区代码
https://github.com/bnyu/ip2c
lisxour
2022-11-21 14:39:28 +08:00
@mofe 不一样只是因为你只代理了非大陆网站。。。
gujuji
2022-11-21 14:44:14 +08:00
@zhangshine 这个是啥意思啊,没看懂 10-1000
zhangtest
2022-11-21 14:54:29 +08:00
写代码也得符合特色国情,这种方式是中国人特权,应该推广开来,让其他国家羡慕一下。
zhangshine
2022-11-21 15:32:49 +08:00
@gujuji 看 #42 , 新的语法糖,增加可读性
Radom
2022-11-21 15:33:32 +08:00
这个确实很牛。
gujuji
2022-11-21 17:20:31 +08:00
@zhangshine 想起来了,想起来了哈哈哈,
CaptainD
2022-11-21 17:28:12 +08:00
我不能访问 Google = 我在大陆
allenzhangSB
2022-11-21 17:34:54 +08:00
我为什么要点进这个帖子
muhuan
2022-11-21 19:59:01 +08:00
curl -L ip.tool.lu
yanheqi
2022-11-22 07:32:34 +08:00
这和 clash for Windows 检测网络联通性的测速网址有什么区别呢? https://ybfl.xyz/202.html

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

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

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

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

© 2021 V2EX