You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否有ICANN等机构的公共HTTP服务器可用于测试互联网连通性?

回答

有符合要求的权威公共服务可用,目前行业内普遍采用这类高可靠公共服务做连通性校验,稳定性有足够保障。

可选的权威服务类型

  • ICANN及全球根域名运营机构提供的公共连通性检测端点,普遍支持跨域请求,可用性接近100%,几乎不存在全球范围宕机的可能
  • 全球头部公共DNS、NTP服务运营方提供的健康检测接口,节点覆盖广,响应速度快,也适合做前端连通性校验

核心判断逻辑

当你的自有服务端请求失败时,按以下逻辑判断故障原因:

  1. 同时向2~3个不同运营主体的权威公共服务发起轻量请求
  2. 若所有公共服务请求都失败,判定为客户端互联网连接异常
  3. 若公共服务请求正常返回,仅自有服务请求失败,判定为自有服务端宕机

代码实现示例

// 连通性检测工具函数
async function checkInternetAvailable() {
  // 填入2~3个你选定的权威公共检测服务地址,建议优先选支持HEAD请求的端点
  const checkList = [
    '你的第一个权威检测服务地址',
    '你的第二个权威检测服务地址'
  ]
  const requestList = checkList.map(url => 
    fetch(url, {
      method: 'HEAD', // 用HEAD请求减少传输开销
      mode: 'cors',
      cache: 'no-store',
      timeout: 3000
    })
  )
  try {
    // 只要任意一个请求成功即说明网络正常
    await Promise.any(requestList)
    return true
  } catch(err) {
    // 所有请求都失败说明客户端网络异常
    return false
  }
}

// 业务请求中的调用示例
async function fetchBusinessData() {
  try {
    const response = await fetch('你的自有服务端接口地址')
    return await response.json()
  } catch(err) {
    const netWorkOk = await checkInternetAvailable()
    if (netWorkOk) {
      // 触发服务端故障的提示逻辑
      console.log('服务端暂时无法访问,请稍后重试')
    } else {
      // 触发客户端网络故障的提示逻辑
      console.log('网络连接异常,请检查你的网络设置')
    }
  }
}

优化建议

  • 尽量用HEAD请求替代GET请求,减少不必要的带宽消耗,也能降低对公共服务的压力
  • 不要只依赖单个公共检测服务,避免单个服务临时波动造成误判
  • 不要高频轮询公共检测服务,仅在自有服务请求失败时触发一次检测即可

内容的提问来源于stack exchange,提问作者Joel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:54:04