Featured image of post 命令行批量测试IP

命令行批量测试IP

命令行批量测试IP,SHELL批量测试IP连通性

在日常工作中,经常需要批量测试多个IP是否通畅。分享几个不同系统下的实用命令,简单直接,复制改改IP就能用。

Linux 批量ping IP

直接在终端里运行这段命令就行:

1
for ip in 192.168.1.1 192.168.1.2 10.0.0.1 github.com; do ping -c 2 -W 2 "$ip" > /dev/null 2>&1 && echo -e "$ip: \033[32m通\033[0m" || echo -e "$ip: \033[31m不通\033[0m"; done

简单说下参数:

  • -c 2:每个IP ping 2次,根据需要可以改成1-4次
  • -W 2:超过2秒没响应就判为超时
  • 执行后会用绿色显示“通”,红色显示“不通”,结果一目了然

Windows 批量ping IP

Windows下有几种方式,根据自己的情况选:

1. PowerShell 7+ 并行版(推荐)

如果装了PowerShell 7及以上,用这个最快,多个IP同时测:

1
"192.168.1.1 192.168.1.2 10.0.0.1" -split " " | ForEach-Object -Parallel { if (Test-Connection -ComputerName $_ -Count 1 -TimeoutSeconds 2 -Quiet) { Write-Host "$_`: 通" -ForegroundColor Green } else { Write-Host "$_`: 不通" -ForegroundColor Red } }

2. 通用PowerShell版(兼容所有版本)

如果并行版用不了,这个串行执行的版本也比系统自带的快:

1
"192.168.1.1 192.168.1.2 10.0.0.1" -split " " | ForEach-Object { if (Test-Connection -ComputerName $_ -Count 1 -TimeoutSeconds 2 -Quiet) { Write-Host "$_`: 通" -ForegroundColor Green } else { Write-Host "$_`: 不通" -ForegroundColor Red } }

3. CMD命令行版

习惯用CMD的话,试试这个一行命令:

1
for %i in (192.168.1.1 192.168.1.2 10.0.0.1) do @(ping -n 1 -w 2000 %i > nul && echo %i: 通 || echo %i: 不通)

这几个命令里,-TimeoutSeconds 2(PowerShell)和-w 2000(CMD)都是设置2秒超时,-Count 1-n 1是只ping一次,效率更高。

用的时候把示例IP换成自己需要测试的列表就行,亲测实用~


Licensed under CC BY-NC-SA 4.0
最后更新于 Nov 09, 2025 00:00 UTC
this is the end :)