最近有要求在WINDOWS上对一批主机进行PING命令测试,然后,分析ping 命令结果,本来打算用bat 做的,可BAT在WINDOWS 2000和windows XP/2003上执行的结果不一致,干脆就打算用perl来处理一下,主要是perl对命令行返回文全过滤。。
open(MyIpList,"e:\\ipini") ||die "open iptab file error $_";
open (MyLog,'>>',"e:\\iptest.log") ||die "open log file error $_";
my $StartTime=localtime;
print MyLog "Start icmp scan:",$StartTime,"\n";
my @IPTAB=;
close(MyIpList);
foreach(@IPTAB)
{
my $IPADDR=$_;
my @Result=`ping -n 3 -w 3000 $IPADDR`;
my @EXP1=(grep /Reply/,@Result);
my @EXP2=(grep /Request/,@Result);
if(2 == $#EXP1)
{
print MyLog "Online host:",$IPADDR;
}
if(2 == $#EXP2)
{
print MyLog "Offline host:",$IPADDR;
}
}
my $FinishTime=localtime;
print MyLog "Finish icmp scan:",$FinishTime,"\n";
close(MyLog);
在E:\ipini文件中写入下列内容:
192.168.0.1
192.168.200.9
1.2.3.4
执行perl ping.pl
查看iptest.log
Start icmp scan:Thu May 31 17:39:07 2007
Online host:192.168.0.1
Online host:192.168.200.9
Offline host:1.2.3.4
Finish icmp scan:Thu May 31 17:39:23 2007
问题:在print $IPADDR进,居然会自动换行,觉得有点儿怪
阅读(998) | 评论(0) | 转发(0) |