在日常工作中,经常需要批量测试多个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换成自己需要测试的列表就行,亲测实用~