需求
这阵子接到个任务:如果用户没有连接vpn,那么他无法正常访问需要连接vpn的网站。需求是在访问该网站之前判断用户是否连接了vpn,如果没有,就给一个友好的提示。
思考
如何判断用户是否连接了vpn?我最初的想法是:先获取用户的ip,然后判断ip和该网站的ip是否在同一个网络下,但是由于鄙人对计算机网络的认知仅停留在会背七层协议的阶段上,加之万能的百度谷歌都没有搜到满意的解决思路。所以必须另辟蹊径。
思路
我们是否能够请求该网站,然后判断请求的状态码,以判断用户是否连接vpn?于是,在访问该网站之前,我异步请求了该网站,然后设置超时,最后在请求完成事件中做逻辑判断,成功的解决了该任务,走向了人生的巅峰。
参考代码
var url = 'http://www.baidu.com'
$.ajax({
url: url