最近有个需求,就是想在前端或 App 端快速判断用户是否能有效访问到外网,从而给用户推荐不同内容。
目前的想法一:
自己买个国外服务器 IP
想办法让 GFW 墙了 IP 后,再给个 api 回调,通了就代表能正常访问.
想法二:
利用一些三方 IP 检测服务(包含在 gfwlist 里的)
获取用户的国外 IP ,从而达到粗略判断的效果
但是考虑到这些有一定的局限性
而且如果是被墙的 IP ,可能接口只能以超时为判断,并不会那么「快速」
前来请教各位大佬,有什么更「成熟」更「快速」的方案么?
感谢各位,大家提供的方案更多是在app端,我需要考虑的方案是兼并前端和app,前端要用google等服务的话还需要找能跨域或者jsonp的接口,所以才会有第一种方案
onload|onerror 可以解决大部分问题了,感谢各位~
1
flyn 2022-05-11 04:27:53 +08:00 1
curl "http://www.v2ex.com/generate_204"
curl "http://youtube.com/generate_204" curl "http://googlevideo.com/generate_204" 通过是否请求超时来判断? |
2
acehowxx 2022-05-11 07:22:26 +08:00 via Android
为啥要自己买国外服务器,直接去连谷歌连不上判断就完事了啊。
|
3
yohole 2022-05-11 08:51:41 +08:00 1
确实没想通 OP 为啥会有想法一?????
|
4
ochatokori 2022-05-11 08:55:31 +08:00 via Android 8
有没有一种可能,楼主是开发反诈 app 的王晶🐶
|
5
cmdOptionKana 2022-05-11 09:04:12 +08:00 2
可以先给用户推荐墙内内容,然后在后台检查能否连接墙外,如果能,下次刷新就推荐墙外内容。反之,推荐墙外内容时也同时检查,一旦超时就改成墙内内容。
这样,墙内用户永远感觉不到(因访问墙外 IP 引起的)超时。而翻墙用户也只是偶尔遇到“抽风”,这点翻墙用户早已习惯。 |
6
Kinnice 2022-05-11 09:23:22 +08:00
你是否真实需要准确判断?
一般做法 想法二即可,而且也并不需要包含在 gfwlist ,一般的国外 ip 查询即可 |
8
litchinn 2022-05-11 09:26:58 +08:00 2
我觉得会访问外网的用户,你给他的外网版选择,他会自己去的,例如 taptap ?
|
9
InDom 2022-05-11 09:29:46 +08:00 1
img.onerror || img.onload
|
10
kujio 2022-05-11 09:32:23 +08:00
ping google.com 不行吗?
|
11
c1273082756 2022-05-11 09:50:15 +08:00
@kujio 即便是开梯子也是 ping 不通 google.com 的吧
|
13
yohole 2022-05-11 09:59:23 +08:00
@sxeuosme 即使是这样,也有很多方法,但是 OP 的想法一不仅提高成本,而且还提高了复杂性和不稳定性,除非是有其他没说明的场景或者目的,不然正常来说不应该有这种想法
|
14
spicecch 2022-05-11 10:23:30 +08:00
不应该是判断用户已经用了外网访问然后再推内容吗
|
15
5966 2022-05-11 10:49:52 +08:00 via iPhone 1
我在想,一些 App 有没有这样的试探动作?
|
16
nmap 2022-05-11 11:05:58 +08:00
curl google
|
17
unco020511 2022-05-11 11:49:25 +08:00
你直接在 app 内发起 google 的访问,然后 callback 一下结果判断成功与失败不就行了吗,为啥想这么复杂
|
18
yaott2020 2022-05-11 12:05:53 +08:00 via Android
找个被墙的站,且用了 CloudFlare CDN 服务的,直接用 http://域名 /cdn-cgi/trace 就可以获取客户端网络信息
|
19
7gugu 2022-05-11 13:42:34 +08:00 via iPhone
ping 一下 google 就好了吧😂
|
20
guanzhangzhang 2022-05-11 14:32:51 +08:00
@7gugu 如果被运营商劫持 dns 解析到省内一个所有 tcp reset 的 ip 地址,那也是能 ping 通的
|
21
jerryjhou 2022-05-11 14:50:43 +08:00 via iPhone
@litchinn Tap 国际版已经进化到锁 SIM 卡归属地了,卡一是国内卡一律白屏
而且用小米华为访问 Tap 国际会提示色情诈骗。。。 |
22
leefor2020 2022-05-11 15:23:35 +08:00 via iPhone 1
@5966 ,要是某些安装量大的 App 已经在这么做并且上报了,那可有点吓人
|
23
onice 2022-05-11 17:19:56 +08:00
curl 一下 google ,如果连接超时,就说明 failed ,如果返回内容,就说明 success.
|
24
kyro00000 2022-05-11 18:41:15 +08:00 via iPhone
我怀疑是反诈?
|