改写了一个shell写的cdn节点测试代码
本文受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服务商 |
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服务商 |
如果想了解更多,请关注我们的公众号
公众号ID:opdevos
扫码关注
转载于:https://blog.51cto.com/5ydycm/555164
改写了一个shell写的cdn节点测试代码相关推荐
- python测试代码怎么写_python unittest编写测试代码
做开发的朋友在写代码的同时一般都会写测试代码,这对于做运维的同学却很少用. 今天我们就来写写测试代码,用unittest模块. cat test.py import unittest def IsOd ...
- 一个JS写的许愿墙-测试
爱心墙 <script type="text/javascript"> </script> 首页   写爱心(点击,可显示或隐藏输入框) 收 ...
- 开发一个delphi写的桌面图标管理代码
参加工作了就很少有时间去玩delphi了,这个适合初学者看看,大神勿喷 工具 delhpi7.0 access数据库 原则win下有安装office就可用 当初不太熟悉sqlite所有没用 ...
- 深度学习笔记:01快速构建一个手写数字识别系统以及张量的概念
深度学习笔记:01快速构建一个手写数字识别系统 神经网络代码最好运行在GPU中,但是对于初学者来说运行在GPU上成本太高了,所以先运行在CPU中,就是慢一些. 一.安装keras框架 使用管理员模式打 ...
- 如何才能写出“高质量”的代码?
作为一个已经写了十几年代码的程序员,做好软件不是全部围绕代码而展开,换句话讲一个程序员的程序员优秀不仅仅体现在代码上,更要有内在的编程思想说的层次再高深点就是框架思想.很多初学者都会存在很多疑问,觉得 ...
- 11月9日云栖精选夜读 | 如何才能写出“高质量”的代码?
作为一个已经写了十几年代码的程序员,做好软件不是全部围绕代码而展开,换句话讲一个程序员的程序员优秀不仅仅体现在代码上,更要有内在的编程思想说的层次再高深点就是框架思想.很多初学者都会存在很多疑问,觉得 ...
- php写一个shell脚本文件格式,一篇文章学会——shell脚本编写
用了caffe有一段时间了,感觉自己写shell脚本的能力有待提高,特地从菜鸟笔记处系统的看了一遍,其实学习基础就可,内容也不多,我就不总结了.把网站上的内容用markdown重新编辑了一下,各位可以 ...
- 用shell写了一个自动编译代码的脚本
点击打开链接 为了充分利用晚上的时间进行编译,用shell写了一个自动编译代码的脚本,这样保证第二天的调试工作不会受大版本编译的影响,同时也能监测服务器端的代码是否出错.我习惯是在每天下班离开之前运行 ...
- linux shell 计算器 除0,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....
用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...
最新文章
- 代码重构----使用java有限状态机来消除太多的if else判断
- ssh 三者集合的思想
- 洛谷 - P3379 【模板】最近公共祖先(LCA)(RMQ求LCA/Tarjan求LCA)
- 泽西岛的RESTful Web服务
- MYSQL性能调优及架构设计学习笔记-影响MYSQL性能的相关因素之实例分析
- iOS 使用脚本自动化复制target
- 阿里巴巴的AI“发动机”
- 小米路由老毛子 潘多拉Padavan 无线桥接中继
- 资料分析-特殊增长率,综合分析
- 【Linux】Linux Ext2文件系统
- Filenet 周报(2019.12.23-2020.01.05)
- 何凯明最新一作MAE解读系列1
- 「Python编程规范」语句分隔符号
- 王者荣耀AI绝悟完全体对战开启:英雄随便选,论文已被NeurIPS收录
- Apple开发账号添加团队成员
- uni-app开发微信小程序,H5 关于压缩上传图片的问题
- java曲线平滑算法_JFreeChart简单实现光滑曲线绘制
- 解决 HTTP/2 stream 1 was not closed cleanly before end of the underlying stream
- 旧路由器改装无线打印服务器,旧路由器改wifi放大器详细教程【图】
- Arduino控制土壤湿度传感器
热门文章
- 职场思想分享002 | 入职第一个月工资这样花,一年内工资至少再涨50%!
- 使用Helm 在容器服务k8s集群一键部署wordpress
- 查看EBS中BI Publisher的版本
- [C#]从URL中获取路径的最简单方法-new Uri(url).AbsolutePath
- 重新学.Net[二]——从编译到运行
- Java 常用类库 之 Random 随机数类实例
- 企业级LNMP架构搭建实例(基于Centos6.x)
- 【手把手教你全文检索】Apache Lucene初探
- [LeetCOde][Java] Best Time to Buy and Sell Stock III
- LR11之web_reg_find文本检查点的使用