Fixed IPv6 lookups
This commit is contained in:
parent
9312e5a5a8
commit
f82da57ebd
53
aslookup
53
aslookup
|
@ -1,41 +1,46 @@
|
||||||
#!/usr/bin/env perl
|
#!/usr/bin/env perl
|
||||||
#aslookup.pl - Looks up information on a given ASN or IP address
|
#aslookup.pl - Looks up information on a given ASN or IP address
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
use Net::Whois::RIPE;
|
use Net::Whois::RIPE;
|
||||||
|
|
||||||
|
sub handle_whois_output {
|
||||||
|
my ($obj,$target) = @_;
|
||||||
|
while($obj->isnt_exhausted) {
|
||||||
|
my ($asnum,$asname,$descr,$origin,$route);
|
||||||
|
my @whoisdata = split /\n/, $obj->value();
|
||||||
|
foreach (@whoisdata) {
|
||||||
|
$asnum = $_ if /^aut-num:/;
|
||||||
|
$asname = $_ if /^as-name:/;
|
||||||
|
$descr = $_ if /^descr:/;
|
||||||
|
$origin = $_ if /^origin:/;
|
||||||
|
$route = $_ if /^route[6]?:/;
|
||||||
|
}
|
||||||
|
$descr =~ s/.*:[ ]+//;
|
||||||
|
if($target =~ /^AS.*/i) {
|
||||||
|
$asnum =~ s/.*:[ ]+//;
|
||||||
|
$asname =~ s/.*:[ ]+//;
|
||||||
|
print "$target is $descr ($asname)\n";
|
||||||
|
} else {
|
||||||
|
$origin =~ s/.*:[ ]+//;
|
||||||
|
$route =~ s/.*:[ ]+//;
|
||||||
|
print "$route advertised by $origin - $descr\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
my $default_as_server = "whois.radb.net";
|
my $default_as_server = "whois.radb.net";
|
||||||
my %whois_options = (
|
my %whois_options = (
|
||||||
"hostname" => $default_as_server,
|
"hostname" => $default_as_server,
|
||||||
);
|
);
|
||||||
|
|
||||||
if($#ARGV < 0 || $ARGV[0] eq "") {
|
if($#ARGV < 0 || $ARGV[0] eq "") {
|
||||||
print "Provide an IP or ASN to look up";
|
print "Provide an IP or ASN to look up";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
my $target = $ARGV[0];
|
my $target = $ARGV[0];
|
||||||
my $whois = Net::Whois::RIPE->new(%whois_options);
|
my $whois = Net::Whois::RIPE->new(%whois_options);
|
||||||
|
my $ripewhois = Net::Whois::RIPE->new();
|
||||||
my $witerator = $whois->query($target);
|
my $witerator = $whois->query($target);
|
||||||
while($witerator->isnt_exhausted) {
|
handle_whois_output($witerator,$target);
|
||||||
my ($asnum,$asname,$descr,$origin,$route);
|
my $riterator = $ripewhois->query($target);
|
||||||
my @whoisdata = split /\n/, $witerator->value();
|
#handle_whois_output($riterator,$target);
|
||||||
foreach (@whoisdata) {
|
|
||||||
$asnum = $_ if /^aut-num:/;
|
|
||||||
$asname = $_ if /^as-name:/;
|
|
||||||
$descr = $_ if /^descr:/;
|
|
||||||
$origin = $_ if /^origin:/;
|
|
||||||
$route = $_ if /^route:/;
|
|
||||||
}
|
|
||||||
$descr =~ s/.*:[ ]+//;
|
|
||||||
if($target =~ /^AS.*/i) {
|
|
||||||
$asnum =~ s/.*:[ ]+//;
|
|
||||||
$asname =~ s/.*:[ ]+//;
|
|
||||||
print "$target is $descr ($asname)\n";
|
|
||||||
} else {
|
|
||||||
$origin =~ s/.*:[ ]+//;
|
|
||||||
$route =~ s/.*:[ ]+//;
|
|
||||||
print "$route advertised by $origin - $descr\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue