返回列表 发帖

[原创]一段网络速度检测代码[perl]

[watermark]#!perl -w use Net::Ping; #定义使用的模块,这个是大家应该知道吧。 use Color::Output;#这个是打印输出彩色字符的模块,大家可以到网上找到。 Color::Output::Init; $|=1; $host=shift||usag(); #获得命令行输入,如果没有则转到usag子程序。 $count1=0; #初试一些变量,这些是各个类型的网络状况 $count2=0; $count3=0; $count4=0; $stime=time; ti(); while(sleep(3)) #sleep执行一下后面的代码 { $p = Net::Ping->new(); #创建一个新的ping连接 $p->hires(); if(($ret, $duration, $ip) = $p->ping($host,5.5) and $ret>0) #ping $host 返回$ret, $duration, $ip三个结果:第一个是成功与否(成功则为1,否则为0),第二个是耗用时间(以毫秒为单位),第三个是IP,if $ret>0则执行后面的。 { system("cls"); #系统命令 cls(清屏) ti(); printf("\n 与目标主机:$host [ip:$ip] 保持通讯中 (连接速度: %.2f ms)\n\n", $duration); if($duration<1){$count1++;} #以下这段是以ping反馈速度$duration来判断网络状况。 if($duration<2.5 and $duration>=1){$count2++;} if($duration>=2.5){$count3++;} } else #如果$ret不>0则表示ping失败,则执行后面代码 { system("cls"); ti(); print "\n 连接到目标主机:$host 失败!\n"; $count4++; } $p->close(); #关闭ping连接 $ct=$count1+$count2+$count3+$count4; #以下全是整理数据后打印输出的代码。 $bf1=$count1/$ct; $bf2=$count2/$ct; $bf3=$count3/$ct; $bf4=$count4/$ct; $bf11=int($bf1*100); $bf21=int($bf2*100); $bf31=int($bf3*100); $bf41=int($bf4*100); $str1=">"x(int($bf1*20)); $str2=">"x(int($bf2*20)); $str3=">"x(int($bf3*20)); $str4=">"x(int($bf4*20)); $str11=" "x(20-int($bf1*20)); $str21=" "x(20-int($bf2*20)); $str31=" "x(20-int($bf3*20)); $str41=" "x(20-int($bf4*20)); $etime=time; $ttime=$etime-$stime; ($hour,$minute,$second)=stime($ttime); cprin("_"x60,7); cprin("\n 统 计: $hour小时$minute分$second秒 进行$ct次连接测试",9); cprin("\n 良 好 率:[>$str1$str11]$bf11% ($count1/$ct)",7); cprin("\n 一 般 率:[>$str2$str21]$bf21% ($count2/$ct)",11); cprin("\n 较 差 率:[>$str3$str31]$bf31% ($count3/$ct)",13); cprin("\n 异 常 率:[>$str4$str41]$bf41% ($count4/$ct)",5); } sub ti { print <

[原创]一段网络速度检测代码[perl]

嘿嘿,又看到xtiger的perl帖子了.
你的代码总让人赏心悦目:)  
偶觉得你应该做得更深入和实用一些的程序.比如一些漏洞检测软件,注入工具等.perl在这方面好象还是很有优势的.
谢谢x-tiger的帖子.

TOP

[原创]一段网络速度检测代码[perl]

我是个懒人。
   不想研究太多东西,因为那需要时间,而且我需要学习的东西很多,不只是perl。我工作和这个没关系。
   尽量吧

TOP

返回列表 回复 发帖