📜  使用 javascript ping ip 地址(1)

📅  最后修改于: 2023-12-03 14:49:40.777000             🧑  作者: Mango

使用 JavaScript Ping IP 地址

在 JavaScript 中,我们可以使用 XMLHttpRequest 对象来向服务器发送请求,并通过获取响应时间来模拟 Ping IP 地址的过程。下面是一种使用 JavaScript 来 Ping IP 地址的方法示例:

function pingIP(ip) {
  return new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest();

    xhr.onload = function() {
      if (xhr.status === 200) {
        const responseTime = xhr.getResponseHeader('X-Response-Time');
        resolve(responseTime);
      } else {
        reject(xhr.status);
      }
    };

    xhr.onerror = function() {
      reject('Error: Request failed.');
    };

    xhr.open('GET', `http://${ip}`, true);
    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    xhr.setRequestHeader('X-Response-Time', 'true');
    xhr.send();
  });
}

上述代码中,我们使用 XMLHttpRequest 对象发送一个 GET 请求到指定的 IP 地址,并设置了一个自定义的请求头 X-Response-Time 来获取服务器的响应时间。

调用该函数可以返回一个 Promise,该 Promise 成功时会返回服务器的响应时间,失败时会返回错误状态码或错误消息。

使用示例:

pingIP('127.0.0.1')
  .then(responseTime => {
    console.log(`Ping successful. Response time: ${responseTime}`);
  })
  .catch(error => {
    console.error(`Ping failed. Error: ${error}`);
  });

这是一个简单的示例代码,你可以根据自己的需求进行修改和扩展。注意,该方法只能模拟 Ping 的效果,并不能真正发送 ICMP 请求。