是否会使用 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 简明教程》。

批量 ping 测试脚本(IP 扫描)的更多相关文章

  1. 批量 ping 测试脚本

    是否会使用 vpn 工作,已经成为魔法师和麻瓜之间最重要的区分.使用 vpn 工作,也产生了其它一些奇奇怪怪的问题,比如,选择 vpn 服务器. 你要测试哪个 vpn 离你最近. 所以,就有了下面的脚 ...

  2. python实现本地批量ping多个IP

    本文主要利用python的相关模块进行批量ping ,测试IP连通性. 下面看具体代码(python3): #!/usr/bin/env python#-*-coding:utf-8-*- impor ...

  3. 在windows命令行批量ping局域网内IP

    参考了博客园Alfred Zhao的文章<Windows平台ping测试局域网所有在用IP> 在cmd命令行运行如下命令即可: ,,) -w .%i | find "回复&quo ...

  4. shell脚本批量ping测试IP是否通

    #!/bin/bash rm -f result.txt cat ip.txt | fping > result.txt 2行代码就搞定,很方便,初学shell,很强大,问了下同事,但是shel ...

  5. 批量ping测试的脚本

    #脚本开始 #!/bin/bash HOSTLIST=`cat /usr/local/ipaddrs.txt` for IP in $HOSTLIST do ping -c 3 -i 0.2 -W 3 ...

  6. Linux下批量ping某个网段ip的脚本

    比如现在需要对172.16.50.0/24网段的ip进行检查,检查哪些ip现在被占用,哪些ip没有被占用,可以通过ping命令来检查,脚本如下: [root@uatdns01 opt]# vim /o ...

  7. Qt5.2中使用ping命令实现Ip扫描功能

    在实现类似于Free IP Scanner 2.1的Ip扫描器软件中,会用到ping命令.如果使用Qt编程实现,主要会用QThread.QProcess这两个类.关于这两个类的具体用法可以查阅Qt助手 ...

  8. mmdetection 批量执行测试脚本

    在终端执行该脚本,传入所有的测试路径,每一个model的结果文件夹里面有一个best文件夹存放着其训练时最高mAP对应的权重,名字为best.pth dir=$(ls -l $1 |awk '/^d/ ...

  9. 批量ping主机脚本

    #! /bin/bash for i in `cat test.list`do   host=`echo $i|awk -F"," '{print $1}'`   app_IP=` ...

随机推荐

  1. 使用开源库 SVPullToRefresh 实现上拉加载下拉刷新

    SVPullToRefresh开源库地址 https://github.com/samvermette/SVPullToRefresh 将整个文件夹SVPullToRefresh拖入工程中并引入头文件 ...

  2. 用开源项目JazzyViewPager实现ViewPager切换动画

    JazzyViewPager这个项目可以让viewpager有各种绚丽的动画,而且还可以自由扩展.但从官网下载的lib导入时会出现找不到视图的问题,不知道是不是我人品不行,所以我就自己写了lib.总之 ...

  3. AsyncTask中各个函数详细的调用过程,初步实现异步任务

     AsyncTask内部类可能会产生内存泄露的问题 解决上述内部类可能引起的内存泄露问题的方法 将AsyncTask或者Thread的子类作为单独的类文件,不持有Activity的强引用 将Async ...

  4. 指定nvm的默认版本号

    nvm alias default 8.9.4

  5. jcseg-1.8.7版本发布 - 多配置适应+完整开发帮助文档

    jcseg是使用java开发的一款开源中文分词器, 并且提供了最新版本的lucene和solr分词接口. jcseg 1.8.7版本发布了: 1. 更改了内部设计, 加入JcsegTaskConfig ...

  6. golang常用模块介绍

    golang模块 一.命令行库Cobra Cobra提供简单的接口来创建强大的现代化CLI接口,比如git与go工具.Cobra同时也是一个程序, 用于创建CLI程序 https://www.jian ...

  7. Dubbo服务化最佳实践

    分包 建议将服务接口,服务模型,服务异常等均放在 API 包中,因为服务模型及异常也是 API 的一部分,同时,这样做也符合分包原则:重用发布等价原则(REP),共同重用原则(CRP). 如果需要,也 ...

  8. 【deep learning学习笔记】注释yusugomori的DA代码 --- dA.cpp --模型准备

    辅助函数和构造函数. #include <iostream> #include <math.h> #include "dA.h" using namespa ...

  9. 如何解决在Windows Server 2008 R2 上安装证书服务重启后出现 CertificationAuthority 91错误事件

    很久都没写什么博客了,前一段时间学习2008 R2时,在自己的电脑上同时安装AD 和证书 往往会出现一个CertificationAuthority错误,如下: 产生问题的主要原因是: 证书服务器与D ...

  10. AS 功能 设置 SDK AVD 简介 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...