Javascript 判断是否在内网

开发公司内部的应用的时候经常需要判断是否在内网,通过判断 wifi名称或者内网 IP都比较麻烦而且变动较大,通过访问内网资源来判断是目前看来最佳的方案。

因为浏览器有禁止跨域的限制,所以我们采用 jsonp 来请求,网址不支持跨域 或者 jsonp 怎么办?没关系,只要能访问内网成功 complete 就会执行,不然会走超时的逻辑,我们就是通过这样来实现判断的,代码如下:

$.ajax({
    type: "GET",
    timeout : 3000,
    url: "http://home.mi.com",
    dataType: "jsonp",
    complete : function(XMLHttpRequest,status){
        if(status==='timeout'){
            alert("非内网");
        } else {
            alert("内网");
        }
    }
});