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

如何使用for循环配合Promise.all批量请求192.168.1.1-255网段IP

192.168.1.1-255网段批量并发请求实现

你只需要替换原有写死的urls数组,通过for循环遍历1-255的IP尾号拼接完整地址,生成目标请求列表即可,同时建议补充异常处理逻辑,避免单个IP请求失败导致整个批量任务直接中断。

完整实现代码

// 初始化空的URL列表
let urls = [];
// 循环生成1-255的IP地址,可根据实际需求替换协议、端口、请求路径
for (let i = 1; i <= 255; i++) {
  urls.push(`http://192.168.1.${i}`);
}

// 给每个请求单独加catch,避免单个请求失败触发Promise.all快速失败机制
let requests = urls.map(url => 
  fetch(url)
    .then(response => ({ success: true, url: response.url, status: response.status }))
    .catch(err => ({ success: false, url, error: err.message }))
);

Promise.all(requests)
  .then(results => {
    results.forEach(res => {
      if (res.success) {
        console.log(`${res.url}: ${res.status}`);
      } else {
        console.log(`${res.url}: 请求失败, ${res.error}`);
      }
    })
  });

注意事项

  • 地址拼接规则:如果目标服务有固定端口、请求路径,直接修改模板字符串即可,例如需要请求80端口的/check路径,就写成http://192.168.1.${i}/check,如果是HTTPS服务就替换协议头为https://
  • 跨域问题:如果在浏览器环境运行代码,目标IP的服务需要配置CORS允许你当前页面的源访问,否则请求会被浏览器安全策略拦截
  • 并发压力:一次性发起255个并发请求可能触发浏览器同域名并发连接数限制,也可能对网段内的设备造成冲击,业务允许的话可以增加并发控制逻辑分批发起请求
  • 超时处理:原生fetch默认没有超时机制,可以搭配AbortController实现超时中断,避免无效请求长时间挂起

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:09:21