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

    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)

  

posted @ 2024-03-07 11:08  芝麻小仙女  阅读(912)  评论(0)    收藏  举报