首页 > 其他分享 >前端页面使用js模拟ping命令

前端页面使用js模拟ping命令

时间:2024-03-07 11:11:50浏览次数:32  
标签:console img ping js xhr var new userIpAddress 页面

    let userIpAddress = '';

    // 创建XMLHttpRequest对象
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'https://api.ipify.org/?format=json'); // 调用第三方API获取IP地址
    xhr.onload = function() {
        if (xhr.status === 200) {
            var response = JSON.parse(xhr.responseText);
            userIpAddress = response.ip; // 获取用户的公共IP地址
            console.log(response, userIpAddress)
            // 在此处添加其他相关代码或函数调用
        } else {
            console.error("Error retrieving IP address");
        }
    };
    xhr.send();

    // 用JavaScript中的new Image()构造函数来模拟ping命令。该方式会向指定URL发起网络请求,并根据返回时间计算出与目标主机之间的连接速度。
    function pingHost(hostUrl) {
        var startTime = Date.now();
       
        var img = new Image();
        img.src = hostUrl + "?timestamp=" + startTime; // 设置图片源为目标主机URL,同时传入当前时间戳
       
        img.addEventListener('load', function () {
            var endTime = Date.now();
            var duration = endTime - startTime;
           
            console.log("Ping to " + hostUrl + ": " + duration + "ms");
           
            // 在此处添加其他相关代码或函数调用
        });
    }
   
    // 示例
    setTimeout(()=>{
      pingHost(userIpAddress);
    },1000)

  

标签:console,img,ping,js,xhr,var,new,userIpAddress,页面
From: https://www.cnblogs.com/nangras/p/18058467

相关文章

  • wp/wordpress文章页面添加阅读量/点击量,后台并显示阅读量
    wordpress默认不带阅读量的,现在加上。在function.php加入代码1、前端加入阅读量和点击量//增加文章阅读次数functionrecord_visitors(){if(is_singular()){global$post;$post_ID=$post->ID;if($post_ID){$post_views=(in......
  • 通过debug搞清楚.vue文件怎么变成.js文件
    前言我们每天写的vue代码都是写在vue文件中,但是浏览器却只认识html、css、js等文件类型。所以这个时候就需要一个工具将vue文件转换为浏览器能够认识的js文件,想必你第一时间就想到了webpack或者vite。但是webpack和vite本身是没有能力处理vue文件的,其实实际背后生效的是vue-loade......
  • Js引用其他Js文件中的方法
    目前已知有两种方法,例如在A.js文件中引用B.js文件中的方法。先说第一种:B.js文件是这样的,functionhello(){console.log("Helloworld");}exports.hello=h;那么在A.js文件中可以这样引用,//varhello=require('./B.js');consthello=require('./B.js');hell......
  • 手机H5考试页面
    <!DOCTYPEhtml><html><head><metacharset="utf-8"/><metaname="viewport"content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/><metaname="appl......
  • 盘点一个Pandas处理json数据的实战案例
    大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【黑科技·鼓包】问了一个Pandas处理json数据的问题。问题如下:大佬们请教下一个很简单的问题,因为我半瓢水也不知道该怎么解决,问AI好像也写不好描述,麻烦帮忙看看呗?如下json用df写的话是两列,然后写df=df[row]会变一......
  • 消除js计算误差,消除使用减号“-”或加号“+”的计算误差
    做条形图统计计算时,往往js计算“-”后再无法相“+”等于100%或者说等于1,后来发现是js使用减号“-”或加号“+”计算有误差相关代码:this.standard=99.68this.nonstandard=100-this.standardconsole.info("this.nonstandard:",this.nonstandard)//进一法this.nonstandard......
  • 微信小程序开发:页面分享卡片、风格选择、通道启用等可配置
    上文说到,我们部署了定时任务,但是有个地方忘记在上文写了,这里补上,就是定时任务的超时时间问题,超时时间有7200秒: 我们改成7100秒: 再把云函数调用的云对象的超时时间也改下: 超时时间多一点,因为可能调用往返也需要一点时间,我们把这个时间稍微调大一点。再把云函数的定......
  • el-tree数据量过大导致页面卡顿
    问题:el-tree等树形结构,当数据量非常大,渲染会很慢解决方案:懒加载方法:设置lazy属性为true,当点击父级节点时,再通过load方法加载子列表。优点:使用简单。缺点:不能做回显,无法展开全部节点。虚拟列表方法:使用插件或者自己实现一个虚拟列表(推荐:https://sangtian152.github.io/v......
  • js 时间数组如何url传参 和接收参数
    在JavaScript中,如果你想通过URL传递一个时间数组,你需要先将数组转换成字符串格式,因为URL参数只能传输字符串。有多种方式可以实现这个转换,例如使用JSON.stringify()将数组转换成JSON字符串。下面是一个示例,展示了如何将时间数组转换成URL参数,并在另一个页面接收这些参数:发送时间......
  • React jsx 语法解析 & 转换原理
    jsx介绍jsx是一种JavaScript的语法扩展(eXtension),也在很多地方称之为JavaScriptXML,因为看起就是一段XML语法,用于描述UI界面,并且可以和JavaScript代码结合使用。比起vue中的模板语法,更加灵活,且不需要学习模板语法中的特定标签,比如:v-if、v-for、v-bind等,而是直接使用JavaScript语......