« 2009年06月 | 首页 | 2009年08月 »

2009年07月28日

用PERL PING DNS 轮循域名后的主机

检查路由很多的时候对方是一个DNS 轮循的域名,一个domain后面有若干主机,dig出来再逐个ping比较讨厌,写了几行perl来做这个事。

使用方法:
root用户下

perl ping.pl < host.txt
其中host.txt中保存的是ip或者域名的列表,每行一条,脚本只输出ping不通的ip地址。

代码:

#!/usr/bin/perl
use Socket;
use Net::Ping;
$p = Net::Ping->new('icmp');
while(<>)
{
    chomp;
    (undef, undef, undef, undef, @addrs) = gethostbyname($_);
    for (@addrs)
    {
        $ip = inet_ntoa($_);
        print $ip, " NOT reachable.\n" unless $p->ping($ip, 2);
    }
}
$p->close();