Dns multi check
De BlaxWiki
Révision datée du 26 janvier 2011 à 17:29 par Admin (discussion | contributions)
Ce script en perl a les mêmes fonctionnalités que dig, mais il interroge plusieurs serveur dns définis dans le script
#!/usr/bin/perl -w
use strict;
use warnings;
use Term::ANSIColor;
# D'abord on détermine le nombre de colones du terminal.
my $columns;
open P, "/usr/bin/X11/resize 2>&1 |";
while (<P>)
{
next unless m/^COLUMNS=(\d+)/;
$columns = $1;
last;
}
close P;
if (defined $columns) { $columns -= 1; }
else { $columns = 50; }
my $blue = color("blue") . color("bold");
my $yellow = color("yellow") . color("bold");
my $rs = color("reset");
#
sub header($)
{
my $t = shift;
my $len = ($columns - length($t) - 2) / 2;
print $blue;
print "-" x $len;
print $yellow . " $t " . $blue;
print "-" x $len;
print $rs;
print "\n";
}
sub footer()
{
print $blue;
print "-" x $columns;
print $rs;
print "\n";
}
sub myhost($@)
{
my $ns = shift;
print "\n";
my $cmd = "host " . join(' ', @_) . " $ns 2>&1";
my %lines;
open P, "$cmd |";
while (<P>)
{
chomp;
next if m/^Using domain server/o;
next if m/^Name: /o;
next if m/^Address: /o;
next if m/^Aliases: /o;
next if m/^\s*$/o;
next if defined($lines{$_});
$lines{$_} = 1;
print "$_\n";
}
close P;
print "\n";
}
system("clear");
print "\n";
&header("master / calvados - 212.43.194.7");
&myhost("ns-master.fr.clara.net", @ARGV);
&header("ns0 / alsace - 212.43.194.2");
&myhost("212.43.194.2", @ARGV);
&header("ns1 / lorraine - 212.43.194.3");
&myhost("212.43.194.3", @ARGV);
&header("ns2 / flam - 212.43.250.5");
&myhost("212.43.250.5", @ARGV);
&header("ns3 / queyras - 212.43.194.83");
&myhost("212.43.194.83", @ARGV);
&header("ns4 / jersey - 80.168.69.10");
&myhost("80.168.69.10", @ARGV);
&header("ns5 / perche - 212.43.194.98");
&myhost("212.43.194.98", @ARGV);
&header("ns6 / argens - 212.43.194.100");
&myhost("212.43.194.100", @ARGV);
&header("ns0.freesurf / bastille - 212.43.206.2");
&myhost("212.43.206.2", @ARGV);
&header("ns1.freesurf / danton - 212.43.206.3");
&myhost("212.43.206.3", @ARGV);
&footer;