js检测是否可以访问公网服务器

wifi认证开发过程所用到的,源码如下:

注:检测AC是否放行成功,是否可以访问公网阿里云服务器

功能调用:

checkNet().then(function(res) {
    if(res) {
        //连网成功
    }
    } else {
        //连网失败
    }
})

功能代码:

(function() {
    //检测入口
    checkNet = function() {
        var def = $.Deferred();
        xiuNet(null).then(function(res) {
            netWork(null).then(function(res) {
                if(res) {
                    def.resolve(true);
                } else {
                    def.resolve(false);
                }
            })
        })
        return def.promise();
    }

    //嗅探网络,解决ios弹框接入网络问题
    var checkTime = 2; //嗅探次数
    xiuNet = function(def) {
        if(def == null) {def = $.Deferred();}
        var iframe = document.createElement("iframe");
        iframe.style.cssText = "display:none;width:0px;height:0px;";
        document.body.appendChild(iframe);
        var ua = navigator.userAgent;
        if(ua.indexOf("iPhone") != -1 || ua.indexOf("iPod") != -1 ||
            ua.indexOf("iPad") != -1) {
            iframe.src = "http://www.baidu.com" + "?timestap=" + new Date().getTime();
            console.info("嗅探网络----");
            if(checkTime > 1) {
                checkTime--;
                setTimeout(function() {
                    xiuNet(def)
                }, 1000);
            } else {
                def.resolve(true);
            }
        } else {
            def.resolve(false);
        }
        return def.promise();
    }

    //检测网络,是否可以连接公网
    var cnetTime = 3; //检测网络次数
    netWork = function(def) {
        if(def == null) {def = $.Deferred();}
        $.ajax({
            type: "get",
            timeout: 2000,
            dataType: "jsonp",
            jsonp: "callback",
            url: ‘https://jktv.tv/shphone/ver.txt‘,
            success: function(data) {},
            error: function(xhr) {
                $("#ddd").html("status:"+xhr.status)
                if(xhr.readyState == 4 && xhr.status == 200) {
                    def.resolve(true);
                } else {
                    if(cnetTime > 1) {
                        cnetTime--;
                        setTimeout(function() {
                            netWork(def)
                        }, 200);
                    } else {
                        def.resolve(false);
                    }
                }
            }
        });
        return def.promise();
    }
})();
时间: 2024-10-21 15:11:46

js检测是否可以访问公网服务器的相关文章

内网PC通过NAT server公网地址访问内部服务器时TCP三次握手不成功

公网地址访问内部服务器时TCP三次握手不成功   一.  背景 在上图所示的网络中,PC 及Server属不同LAN,都是zone trust.为了让Internet用户能够访问到Server,FW上部署了NatServer:nat server global A.B.C.D inside 192.168.51.M也就是将公网地址A.B.C.D映射到192.168.51.M.完成上述配置后,Internet用户能够通过A.B.C.D这个公网IP访问Server.但是内网的PC在访问Server的

请问不用IIS怎么在公网服务器上访问WinForm应用程序,注意不用IIS,请不会者

请问不用IIS怎么在公网服务器上访问WinForm应用程序,注意不用IIS,请不会者 详细描述:就是我在局域网上的浏览器,这个局域网是联网的,我怎么通过浏览器,直接访问,公网服务器上的WinForm应用程序,给出一个直接或者间接的访问思路也成! --------解决方案-------- 安装“Web远程管理”服务,用浏览器访问远程桌面 --------解决方案-------- 除了远程桌面,貌似只有下载到本地才能运行winform的程序了吧. --------解决方案-------- winfr

内网通过域名及公网IP访问WWW服务器情况汇总

一.网络环境及问题描述 网络环境: 1.内部网络办公网划分VLAN10 网段:192.168.1.0/24 网关位于核心SWA 2.DMZ网络划分至VLAN20 网段:192.168.2.0/24  网关位于核心SWA 3.管理网段划分VLAN100 网段:192.168.100.0/24 网关位于核心SWA 4.出口路由器RT:公网地址为111.111.111.2 ,E1口地址为192.168.100.2 5.web服务器www.abc.com,IP:192.168.2.2 并在出口RT上配置

JS检测移动端横竖屏的代码

这篇文章主要介绍了JS检测移动端横竖屏的代码,需要的朋友可以参考一下 使用media来判断屏幕宽度遇到的问题: ios上当我旋转屏幕的时候可行,但是安卓机上没反应,横屏显示的还是我竖屏的样式. 查了一下资料,css3的media如果要在移动端有较好的显示效果,需要在页头加上这段代码 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-s

H3C防火墙——回环流量问题(内网终端通过外网IP访问内部服务器)

拓扑如下: 环境描述: 内网两个网段通过防火墙的NAT功能上网,内部WEB服务器:10.1.20.200 映射到公网80端口,配置信息如下: acl number 2000  description NAT_SOURCE  rule 5 permit source 10.1.20.0 0.0.0.255  rule 10 permit source 192.168.10.0 0.0.0.255 interface GigabitEthernet0/0  port link-mode route

服务访问公网 dns解析错误

今天机房几台服务器都无法访问公网接口,原因是--解析公网域名出错,具体情况如下 ping  公网ip或者域名  都没有问题 curl 公网域名 出错 curl -4  访问公网域名没有问题 综合分析 是ipv6的问题,把ipv6模块关掉 方法1:修改网络文件,把ipv6相关的全部注释# vi /etc/sysconfig/network-scripts/ifcfg-eth1 重启network# service network restart 其它方法 1.在/etc/modprobe.d/目录

搭建局域网(有图)访问公网

三层交换机配置: 先创建三个vlanSwitch(config)#vlan 10Switch(config)#vlan 11Switch(config)#vlan 12 再给三个vlan配置ip地址Switch(config)#interface vlan 10Switch(config-if)#ip address 192.168.10.254 255.255.255.0Switch(config)#interface vlan 11Switch(config-if)#ip address 1

访问禁止,检测到可疑访问,事件编号

外网向服务器提交修改/删除数据请求的时候返回下面的错误.但是外网向服务器提交创建数据请求的时候是可以正确提交的.在服务器上操作网站的时候编辑.删除.创建都能正常操作.这是什么原因呢?后来经过各个同事的共同努力才知道:网络中心没有开放put和delete请求,所以让网络中心开放put和delete协议就好了. <HTML> <HEAD> <TITLE>访问禁止</TITLE> <STYLE type=text/css>p{color:#666;FO

局域网内计算机访问FTP服务器时,提示“无法访问服务器名称或地址

局域网内计算机访问FTP服务器时,提示“无法访问服务器名称或地址”,一般由三个原因造成:一.防火墙未关闭解决方法如下:1.单击屏幕左下角的”开始“菜单2.在弹出菜单中单击”控制面板“3.点击”系统和安全“4.点击”Winsows 防火墙“5.单击左侧的”打开或关闭Windows防火墙“6.在”家庭或工作网络位置设置“和”公用网络位置设置“两项里选择关闭防火墙,单击”确定“即可.二.设置有误,FTP被动模式没有禁止.解决方法如下:1.打开浏览器,点击”工具“2.在下拉菜单中点击”Internet选