`
coolboy09
  • 浏览: 7922 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用JavaScript测试机器是否连接

 
阅读更多

闲来无事,逛一论坛时,发现一段有趣的代码,我做了点小小的改动,发现可以用js可以实现ping一个主机的方法,不得不感叹js真是强大啊,先贴出代码如下:

function testPing(ip) {
    var img = new Image();
    var start = new Date().getTime();
    var flag = false;
    var isWifiWork = true;
    var hasComplete = false;

    img.onload = function() {
        if (!hasComplete) {
            flag = true;
            hasComplete = true;
            console.log('Ping:' + ip + ' successful.');
        }
    };

    img.onerror = function() {
        if (!hasComplete) {
            if (!isWifiWork) {
                flag = true;
                console.log('Ping:' + ip + ' successful.');
            } else {
                console.log('The network is not working!');
            }
            hasComplete = true;
        }
    };

    setTimeout(function(){
        isWifiWork = false;
        console.log('The network is working, start ping...');
    },2);

    img.src = 'http://' + ip + '/' + start;
    var timer = setTimeout(function() {
        if (!flag) {
            hasComplete = true;
            flag = false ;
            console.log('Ping:' + ip + ' fail. ');
        }
    }, 1500);
}

testPing('www.163.com:80');

 运行的效果如图:



 原代码如下:

function ping(ip){
   var img = new Image();
   var start = new Date().getTime();
   img.src = "http://"+ip+"?t="+start;
   var flag = false;
   img.onload = function(){
       flag = true;
       console.log('ok');
   };
   img.onerror = function(){
       flag = true;
       console.log('ok');
   };
   var timer = setTimeout(function(){
       if(!flag){
          flag = false;
          console.log('failed');
       }
   },1500);
}

 

 

  • 大小: 2.4 KB
分享到:
评论

相关推荐

    程序天下:JavaScript实例自学手册

    19.17 检查机器是否安装Word 19.18 打印当前页 19.19 打印预览 19.20 隐藏不想打印的页面内容 19.21 使用ExecWB直接打印 19.22 动态绑定XML文件 19.23 Kill Excel的进程 第20章 调用操作系统的应用 20.1 Javascript...

    《程序天下:JavaScript实例自学手册》光盘源码

    19.17 检查机器是否安装Word 19.18 打印当前页 19.19 打印预览 19.20 隐藏不想打印的页面内容 19.21 使用ExecWB直接打印 19.22 动态绑定XML文件 19.23 Kill Excel的进程 第20章 调用操作系统的应用 20.1 Javascript...

    IronJSNET的一个JavaScript实现

    IronJS是一款开源的JavaScript引擎,它完全用C#编写,旨在为.NET Framework提供一个高效的JavaScript运行时环境。这个项目的目标是实现ECMAScript标准,使得开发者可以在.NET平台上运行JavaScript代码,与.NET应用...

    Selenium——Web应用程序测试的工具

    通过这些功能,测试人员可以创建基于JavaScript的测试脚本,直接在浏览器环境中执行,以验证Web应用的功能和行为。 Selenium Grid 是一个分布式测试工具,允许在多台机器上并行运行测试,以加速测试过程。selenium-...

    falsh初探,简单介绍了flash测试方法

    1. **连接速度下的测试**:在不同的网络连接速度下测试Flash程序的表现,确保在不同带宽条件下都能正常运行。 2. **浏览器兼容性测试**:在多种主流浏览器中测试Flash程序,确保跨浏览器的一致性。 3. **低配置机器...

    JavaScript引擎在动态网页采集技术中的应用.pdf

    在测试中,我们使用了SpiderMonkey引擎来提取动态URL,结果表明JavaScript引擎可以成功地提取动态URL,并提高网页采集的效率和准确性。 JavaScript引擎在动态网页采集技术中的应用可以解决网页采集器在动态网页采集...

    E017-渗透测试常用工具-使用Beef对客户端浏览器进行劫持.pdf

    确保所有机器之间的网络连接畅通,可以通过`ifconfig`(在Linux中)和`ipconfig`(在Windows中)命令获取各自的IP地址,并用`ping`测试连通性。在这个例子中,渗透机的IP是172.16.1.7,客户端的IP是172.16.1.6,而...

    javascript-problems:JavaScript 技术测试的答案

    通过确保测试在合理的时间内运行 - 目前在我的机器上运行 10 毫秒,性能得到了松散的监控。 但是如果输入比预期大得多,那么可能会出现问题。 我提供了一些坏数据,但如果这是处理直接用户输入或内部生成的输入,...

    服务器端JavaScript之Node.js

    V8引擎采用了即时编译(JIT)技术,将JavaScript代码直接编译为机器码,大大提升了执行速度。同时,V8引擎还支持最新的ECMAScript标准,让开发者可以使用最新的语言特性。 **事件驱动编程** Node.js的核心设计是...

    Json udp通讯测试工具

    在这个案例中,JSON UDP通讯测试工具使用VS2012进行编译,意味着它是用C++或者C#等支持的编程语言实现的,并且符合该版本编译器的语法和库要求。 5. 压缩包子文件: - JsonTool.exe:这是主应用程序文件,用于运行...

    小幺鸡在线接口管理系统支持在线测试

    小幺鸡在线接口管理系统是一款专为开发者设计的高效工具,它允许用户进行在线接口测试,大大简化了API的调试过程。这款系统支持多种数据格式,包括JSON、TXT、XML、HTML、JS以及流数据,同时它还具备WebSocket支持,...

    20200513-V8测试流程介绍以及指令选择单元测试源码分析-luyahan.pptx

    然后,我们可以使用这个接口来构建连接的节点,这些节点最终会被指令选择器转换为机器码。 5. **指令选择**:在IR指令图构建完成后,V8的指令选择器会遍历图并选择最佳的机器码指令来实现每个IR操作。 6. **断言**...

    Json、Yaml、MongoDestekleyen数据库模块!_JavaScript_下.zip

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。JSON格式通常用于传输和存储数据,因为它的结构清晰,易于理解,被广泛...

    基于Appium的Android应用自动化测试框架的研究.pdf

    服务器端可以部署在与测试设备不同的机器上,通过远程云服务接收和解释客户端发来的命令。客户端的测试代码可以利用Appium提供的API编译或者直接通过npm、NuGet等包管理工具安装Appium的客户端库。测试时,Appium...

    多用户性格性命测试测试版.rar

    5. **编程语言和框架**:用于开发这种测试软件的可能包括各种编程语言,如Python、Java、C#或JavaScript,以及可能使用的前端和后端框架,如React、Angular、Django或Node.js。 6. **数据库管理**:为了存储用户...

    statem:开发Javascript TuringState机器

    7. **使用示例**:在实际应用中,`statem`可以用于各种场景,例如用户认证流程、游戏状态管理、网络连接状态监控等。开发者可以通过定义一系列状态和转换规则,使得系统的行为更易于理解和控制。 8. **API接口**:`...

    springboot连接数据库作业.zip

    - **JDBC支持**:Spring Boot默认使用HikariCP作为连接池实现,但也可以选择其他连接池,如Druid、Tomcat JDBC等。 - **JPA与Hibernate**:Spring Boot对Java Persistence API (JPA) 提供了支持,可以通过注解式...

Global site tag (gtag.js) - Google Analytics