[原]ping一段网络的perl脚本
ping是一个很常用的网络检测脚本,比较唯一不足的是一次只能检测一个IP地址。我用perl包装了一下,使得它可以ping一段网络地址:#! /usr/bin/perl -w
use strict;
die print "usage : range_ping.pl 192.168.1.1 192.168.1.100 \n"
."Powered By killkill \n\n"
if scalar @ARGV != 2 ;
my ( $start_ip , $end_ip ) = @ARGV;
my $start = &ip2int($start_ip);
my $end = &ip2int($end_ip);
my $i = $start;
for ( $start .. $end )
{
my $ip = &int2ip($_);
my @val = `ping -c1 -W1 $ip;echo \$?`;
if ($val[$#val] == 0 )
{
print " + $ip \n";
}
else
{
print " | $ip \n";
}
}
sub ip2int
{
$_ =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
return (16777216*$1)+(65536*$2)+(256*$3)+$4;
}
sub int2ip
{
return ($_/16777216)%256 . '.' .
($_/65536)%256 . '.' .
($_/256)%256 . '.' .
$_%256;
}
功能很简单,但是很有用。
页:
[1]