本文受http://wangxiaoyu.blog.51cto.com/922065/514570这篇文章的感染,就模拟用perl写了一个,供参考。呵呵...

本脚本运行环境:

badboy@www:~$more /etc/issue
Ubuntu 10.04.2 LTS \n \l

badboy@www:~$ perl -v

This is perl, v5.10.1 (*) built for i486-linux-gnu-thread-multi

脚本如下(cdn_test.pl):

#!/usr/bin/perl use Encode; require "qqwry.pl";  my $HOST=$ARGV[0]; my @ip_total; my @ip_totals; my $Myip;  @ip_total=&get_domain_ip($HOST); &print_information;  #输出域名解析IP sub get_domain_ip(){ open(IP,"-|","host","$_[0]"); while(<IP>){    if( $_=~m /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/ ){        push(@ip_totals,$1);     } } close IP;        return @ip_totals; }  #输出本地出口IP sub get_local_network(){ open(MYIP,"elinks --dump http://checkip.dyndns.org/|"); while(<MYIP>){         ~m /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/;         $Myip=$1;         return $Myip;  } }  #获取IP地址 sub print_addr(){     $ip_address=decode("gbk",ipwhere($_[0]));     return encode("utf8",$ip_address)."\n"; }  #输出响应代码 sub response_code(){ open(RESPONSE,"curl -H \"host:$HOST\" -o /dev/null -s -w \"%{http_code} %{time_connect}\" \"$_[0]\" |"); while(<RESPONSE>){     return $_; } close RESPONSE; #print $response_code."\n"; }  #打印基本信息 sub print_information(){      printf "本地出口ip:%s\n归属ISP服务商:%sWeb网站域名:%s\n解析得到的IP:%s个IP地址\n\n开始测试 ......\n\n\n",&get_local_network(),&print_addr($Myip),$HOST,$#ip_total+1; print "IP地址\t\t\t响应代码\t\tTCP连接时间\t\tISP服务商\n";     for(@ip_total){       my $ip=$_;       print $ip."\t\t";             @response_code_time=split(" ",&response_code($ip));       print $response_code_time[0]."\t\t\t";       print $response_code_time[1]."\t\t\t";       print &print_addr($ip);      } }

感谢原作者,让我学习了不少新东东。。。

哈哈。

效果如下:

badboy@www:~$ perl cdn_test.pl www.sina.com.cn
本地出口ip:x.x.x.x
归属ISP服务商:上海市 IDC机房
Web网站域名:www.sina.com.cn
解析得到的IP:2个IP地址

开始测试 ......

IP地址            响应代码        TCP连接时间        ISP服务商
61.172.201.194        200            0.012            上海市 电信
61.172.201.195        200            0.006            上海市 电信
badboy@www:~$

badboy@www:~$ perl cdn_test.pl www.baidu.com
本地出口ip:x.x.x.x
归属ISP服务商:上海市 IDC机房
Web网站域名:www.baidu.com
解析得到的IP:2个IP地址

开始测试 ......

IP地址            响应代码        TCP连接时间        ISP服务商
119.75.217.56        200            0.032            北京市 长城宽带
119.75.218.45        200            0.032            北京市 长城宽带
badboy@www:~$

如果想了解更多,请关注我们的公众号
公众号ID:opdevos
扫码关注

转载于:https://blog.51cto.com/5ydycm/555164

改写了一个shell写的cdn节点测试代码相关推荐

  1. python测试代码怎么写_python unittest编写测试代码

    做开发的朋友在写代码的同时一般都会写测试代码,这对于做运维的同学却很少用. 今天我们就来写写测试代码,用unittest模块. cat test.py import unittest def IsOd ...

  2. 一个JS写的许愿墙-测试

    爱心墙 <script type="text/javascript"> </script> 首页 &nbsp 写爱心(点击,可显示或隐藏输入框) 收 ...

  3. 开发一个delphi写的桌面图标管理代码

    参加工作了就很少有时间去玩delphi了,这个适合初学者看看,大神勿喷 工具 delhpi7.0    access数据库 原则win下有安装office就可用    当初不太熟悉sqlite所有没用 ...

  4. 深度学习笔记:01快速构建一个手写数字识别系统以及张量的概念

    深度学习笔记:01快速构建一个手写数字识别系统 神经网络代码最好运行在GPU中,但是对于初学者来说运行在GPU上成本太高了,所以先运行在CPU中,就是慢一些. 一.安装keras框架 使用管理员模式打 ...

  5. 如何才能写出“高质量”的代码?

    作为一个已经写了十几年代码的程序员,做好软件不是全部围绕代码而展开,换句话讲一个程序员的程序员优秀不仅仅体现在代码上,更要有内在的编程思想说的层次再高深点就是框架思想.很多初学者都会存在很多疑问,觉得 ...

  6. 11月9日云栖精选夜读 | 如何才能写出“高质量”的代码?

    作为一个已经写了十几年代码的程序员,做好软件不是全部围绕代码而展开,换句话讲一个程序员的程序员优秀不仅仅体现在代码上,更要有内在的编程思想说的层次再高深点就是框架思想.很多初学者都会存在很多疑问,觉得 ...

  7. php写一个shell脚本文件格式,一篇文章学会——shell脚本编写

    用了caffe有一段时间了,感觉自己写shell脚本的能力有待提高,特地从菜鸟笔记处系统的看了一遍,其实学习基础就可,内容也不多,我就不总结了.把网站上的内容用markdown重新编辑了一下,各位可以 ...

  8. 用shell写了一个自动编译代码的脚本

    点击打开链接 为了充分利用晚上的时间进行编译,用shell写了一个自动编译代码的脚本,这样保证第二天的调试工作不会受大版本编译的影响,同时也能监测服务器端的代码是否出错.我习惯是在每天下班离开之前运行 ...

  9. linux shell 计算器 除0,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....

    用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...

最新文章

  1. 代码重构----使用java有限状态机来消除太多的if else判断
  2. ssh 三者集合的思想
  3. 洛谷 - P3379 【模板】最近公共祖先(LCA)(RMQ求LCA/Tarjan求LCA)
  4. 泽西岛的RESTful Web服务
  5. MYSQL性能调优及架构设计学习笔记-影响MYSQL性能的相关因素之实例分析
  6. iOS 使用脚本自动化复制target
  7. 阿里巴巴的AI“发动机”
  8. 小米路由老毛子 潘多拉Padavan 无线桥接中继
  9. 资料分析-特殊增长率,综合分析
  10. 【Linux】Linux Ext2文件系统
  11. Filenet 周报(2019.12.23-2020.01.05)
  12. 何凯明最新一作MAE解读系列1
  13. 「Python编程规范」语句分隔符号
  14. 王者荣耀AI绝悟完全体对战开启:英雄随便选,论文已被NeurIPS收录
  15. Apple开发账号添加团队成员
  16. uni-app开发微信小程序,H5 关于压缩上传图片的问题
  17. java曲线平滑算法_JFreeChart简单实现光滑曲线绘制
  18. 解决 HTTP/2 stream 1 was not closed cleanly before end of the underlying stream
  19. 旧路由器改装无线打印服务器,旧路由器改wifi放大器详细教程【图】
  20. Arduino控制土壤湿度传感器

热门文章

  1. 职场思想分享002 | 入职第一个月工资这样花,一年内工资至少再涨50%!
  2. 使用Helm 在容器服务k8s集群一键部署wordpress
  3. 查看EBS中BI Publisher的版本
  4. [C#]从URL中获取路径的最简单方法-new Uri(url).AbsolutePath
  5. 重新学.Net[二]——从编译到运行
  6. Java 常用类库 之 Random 随机数类实例
  7. 企业级LNMP架构搭建实例(基于Centos6.x)
  8. 【手把手教你全文检索】Apache Lucene初探
  9. [LeetCOde][Java] Best Time to Buy and Sell Stock III
  10. LR11之web_reg_find文本检查点的使用