批量 ping 测试脚本(IP 扫描)
2024-08-29 03:02:12
是否会使用 vpn 工作,已经成为魔法师和麻瓜之间最重要的区分。使用 vpn 工作,也产生了其它一些奇奇怪怪的问题,比如,选择 vpn 服务器。
你要测试哪个 vpn 离你最近。
所以,就有了下面的脚本,毕竟一个个手动的 ping 有点麻烦。每次换 vpn 供应商,就得重新选一次。
ADDRESS=`awk '/^__ADDRESS_BELOW__/ {print NR + 1; exit 0; }' "$0"` tail -n+$ADDRESS "$0"| while read x ; do echo `ping -c $x | awk -F '[ /]' 'NR==1 {ip=$2} $1=="3" {print ip,$10}'` & done | sort -n -k2
exit __ADDRESS_BELOW__
server1
server2
server3
server4
server1,server2,server3...是服务器列表,域名或者 ip。
除了换 address_list 以外,根据设备的不同,ping 的输出也不一样,所以,还需要调整 $1=="3" {print ip,$10}' 这里的参数。我这里,ping 的结果如下:
ping -c 3 www.baidu.com
PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data.
64 bytes from 183.232.231.172: icmp_req=1 ttl=54 time=36.8 ms
64 bytes from 183.232.231.172: icmp_req=2 ttl=54 time=38.7 ms
64 bytes from 183.232.231.172: icmp_req=3 ttl=54 time=38.3 ms --- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 10109ms
rtt min/avg/max/mdev = 36.862/37.996/38.737/0.814 ms
即,当 $1="3"时,为结果行; 此时,$10 是总耗时。因为已经指定空格为间隔符,$1 表示空格隔开的 section 中的第 1 个 section;以此类推,$10 是第 10 个。根据 ping 版本不同,这里做筛选的条件也不同。
想多学点 awk,可以戳 《awk 简明教程》。
最新文章
- 【UE4游戏开发】安装UE4时报SU-PQR1603错误的解决方法
- Oracel EBS - Response
- Ubuntu 16.04 Steam
- left join 取一条数据
- git 操作简明扼要,命令不需要多,够用就行
- Linux设置ssh无密码登陆
- POJ 1836 Alignment
- show master status empty解决方案
- ireport制作小技巧
- MYSQL 学习笔记1 -----mysqladmin -uroot -p status|extended-status
- This configuration file was broken by system-config-keyboard
- LayerDrawable 资源
- TCP/IP之TCP连接的建立与中止状态分析
- C#利用Lambda和Expression实现数据的动态绑定
- 我的java学习笔记(一)
- hdu_1573 X问题(不互素的中国剩余定理)
- SAP abap 语句、命令 语法查询备用
- Ubuntu18.04安装Guake下拉式终端
- kafka NoNode错误
- (转)MYSQL远程登录权限设置
热门文章
- [Android Pro] 开发一流的 Android SDK:Fabric SDK 的创建经验
- Java Callable接口、Runable接口、Future接口
- 程序中try、throw、catch三者之间的关系
- 使用samba进行共享文件操作步骤
- ASP.NET MVC:UrlHelper.cs
- Qt解决:Qobject::connect queue arguments of type ‘xxxx’,Make sure ‘xxxx’ is registered using qRegister
- SharePoint 2013 开启访问请求 链接丢失
- System.Diagnostics.Debug和System.Diagnostics.Trace
- SpringBoot整合Quartz定时任务 的简单实例 2
- Druid连接池简介和配置