js 测试一个ip是否ping的通

该代码示例展示了一个JavaScript函数,通过创建一个Image对象并设置其src属性为指定IP地址来模拟ping操作。利用img.onload和img.onerror事件监听图片加载状态,通过Promise处理异步结果。如果在1500毫秒内未收到响应,则认为IP不可达。此方法用于局域网中检测IP的可用性,以便根据结果选择其他IP。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function ping(ip) {
  return new Promise((resolve, reject) => {
    var img = new Image();
    var start = new Date().getTime();
    img.src = "http://" + ip + "?t=" + start;
    let flag = false;
    img.onload = function () {
      flag = true;
      resolve(flag);
    }
    img.onerror = function () {
      flag = true;
      resolve(flag);
    };

    var timer = setTimeout(function () {
      if (!flag) {
        flag = false;
        resolve(flag);
      }
    }, 1500);
  });
}

// 使用Promise来获取ping的结果
ping("www.google.com").then((flag) => {
  console.log(flag);
});

业务中需要用到在局域网中去访问这个ip是否可用,如果不可用则访问另一个ip 这里去判断是否可以ping通,网上类似的布尔值无法返回出来做条件,并且是异步的,所以这里使用promise的方式,调用的时候因为有定时器,所以要搭配await使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值