ping 批量检测 ip 方法(分软件和脚本两种)

Eric 杂记 322 次浏览 抢沙发

有时需要从众多 IP 里找到可用的,通常会用 ping 命令来检查。如果 IP 数量非常多,逐一手动测试会很费力。下面针对 Windows 和 Linux 系统给出解决办法,使之可以根据 IP 列表批量 ping 检测。

ping 批量检测(Windows)

Windows 下有个批量 ping 检测工具 PingInfoView,下载地址如下。

https://www.nirsoft.net/utils/pinginfoview.zip
https://www.nirsoft.net/utils/trans/pinginfoview_schinese2.zip

两个文件都下载,后者是语言包,将解压的 PingInfoView_lng.ini 文件放入软件同一文件夹内。

使用很简单,运行 PingInfoView 后在弹出窗口输入 IP 或域名列表点击“确定”开始检测。

输入检测 IP 或域名列表
输入批量检测 IP 或域名
PingInfoView 批量检测
PingInfoView 批量检测

更多自定义检测参数请查看软件选项。

ping 批量检测(Linux)

Linux 下操作直接用简单 Shell 脚本就能搞定。将脚本内容保存为 auto_ping.sh 文件,检测 IP 或域名列表保存 ip_list.txt 文件(一行一个)。

#!/usr/bin/env bash
 
for addr in `cat ip_list.txt`
do
    ping -c 4 $addr|grep -q 'ttl=' && echo "$addr OK" || echo "$addr Failed"
done;

之后赋予可执行权限。

chmod +x /root/auto_ping.sh

运行检测并将结果输出到 test_ping.log 文件(如果是服务器端操作,建议先开个 screen 会话)。

screen -S TestPing
/root/auto_ping.sh > /root/test_ping.log

如果要列出可用和不可用 IP,用下面命令查詢输出。

grep "OK$" /root/test_ping.log
grep "Failed$" /root/test_ping.log

拓展:如果本机绑定了多个 IP 地址,还可以用此方法指定 IP 发起检测。

例如测试本机所有 IP 是否能访问指定目标(将本机 IP 地址保存到 ip_list.txt 文件)。

#!/usr/bin/env bash
 
for addr in `cat ip_list.txt`
do
    ping -c 4 -I $addr www.baidu.com|grep -q 'ttl=' && echo "$addr OK" || echo "$addr Failed"
done;

发表评论

电邮地址用于 Gravatar 头像显示,不会被公开可见。