有时需要从众多 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 或域名列表点击“确定”开始检测。
更多自定义检测参数请查看软件选项。
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;