This commit is contained in:
XiCoN-FJS- 2019-10-19 23:24:30 +02:00
commit fa3bdf5590
1 changed files with 66 additions and 0 deletions

66
xtr.pl Normal file
View File

@ -0,0 +1,66 @@
#!/usr/bin/perl
use strict;
use warnings;
use Net::Traceroute;
use Net::DNS::Resolver;
use Dancer2;
#use JSON::PP;
use Data::Dumper;
hook 'before' => sub {
header 'Access-Control-Allow-Origin' => '*';
};
get '/:ip' => sub {
my $ip = route_parameters->get('ip') || 8.8.8.8;
my $trace = traceit($ip);
return encode_json $trace;
};
start;
sub traceit
{
my ($host) = @_;
my $tr = Net::Traceroute->new(host => $host, use_icmp => 1, timeout => 1 );
my @array = ();
if($tr->found)
{
#print Dumper($tr->hops);
foreach my $hop (@{$tr->{'hops'}})
{
my $sum = sprintf("%.1f",($hop->[0]->[2] + $hop->[1]->[2] + $hop->[2]->[2])/3);
my $res = Net::DNS::Resolver->new;
my $query = $res->query($hop->[0]->[1], 'PTR');
my $answer = "nonono";
if($query)
{
foreach my $rr ($query->answer)
{
if($rr->type eq "PTR")
{
$answer = $rr->ptrdname;
}
}
}
# print $hop->[0]->[1]."\t(".$answer.") - ".$sum."\n";
push(@array, [$hop->[0]->[1],$answer,$sum]);
}
}
if($tr->found)
{
return \@array;
}
else
{
return $tr->{'hops'};
}
}