Hi,
this quite a nice idea, but I have one small problem here which I think could potentially confuse the users more than it helps.
And that is anycast DNS servers.
So for example for the famous Google DNS 8.8.8.8 the GeoIP location would be US which technically is correct, but I know for a fact that I am using an instance that is located in the Telehouse which just a few miles away from me and not on the other side of the big pond.
So can we do anything to make this better and should we?
-Michael
On Mon, 2017-11-06 at 19:09 +0100, Peter Müller wrote:
Display rDNS/PTR record and GeoIP information for used nameservers on the netexternal.cgi WebUI page. These information might be useful for debugging.
Thanks to Matthias Fischer for style improvements.
Signed-off-by: Peter Müller peter.mueller@link38.eu
html/cgi-bin/netexternal.cgi | 25 +++++++++++++++++++++++++ langs/de/cgi-bin/de.pl | 1 + langs/en/cgi-bin/en.pl | 1 + 3 files changed, 27 insertions(+)
diff --git a/html/cgi-bin/netexternal.cgi b/html/cgi-bin/netexternal.cgi index 299612d4c..cd2223ac6 100644 --- a/html/cgi-bin/netexternal.cgi +++ b/html/cgi-bin/netexternal.cgi @@ -25,9 +25,13 @@ use strict; #use warnings; #use CGI::Carp 'fatalsToBrowser';
+use IO::Socket; +use Geo::IP::PurePerl;
require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; +require "${General::swroot}/geoip-functions.pl"; require "${General::swroot}/graphs.pl";
my %color = (); @@ -99,6 +103,12 @@ if ( $querry[0] ne~ ""){ <strong>$Lang::tr{'nameserver '}</strong> </th> <th align="center">
<strong>$Lang::tr{'flag'}</st
rong>
</th>
<th align="center">
<strong>$Lang::tr{'rdns'}</st
rong>
</th>
<th align="center"> <strong>$Lang::tr{'status'}</
strong> </th> </tr> @@ -138,10 +148,25 @@ END }
my $table_colour = ($id++ % 2) ? $color{'color22'} :
$color{'color20'};
my $iaddr = inet_aton($nameserver);
my $rdns = gethostbyaddr($iaddr, AF_INET);
if (!$rdns) { $rdns = $Lang::tr{'lookup failed'}; }
my $gi = Geo::IP::PurePerl->new();
my $ccode = $gi->country_code_by_name($nameserver);
my $fcode = lc($ccode);
my $flag_icon = &GeoIP::get_flag_icon($fcode);
print <<END; <tr bgcolor="$table_colour"> <td>$nameserver</td>
<td align="center">
<a href="country.cgi#$fcode"><img
src="$flag_icon" border="0" align="absmiddle" alt="$ccode" title="$ccode"></a>
</td>
<td align="center">
$rdns
</td> <td bgcolor="$bgcolour" align="center"> <font
color="$colour"><strong>$message</strong></font> </td> diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index af96a6445..4cf866a3a 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -1951,6 +1951,7 @@ 'quick playlist' => 'Quick Playlist', 'ram' => 'RAM-Speicher', 'random number generator daemon' => 'Random Number Generator Daemon', +'rdns' => 'rDNS', 'read bytes' => 'Gelesene Bytes', 'read list' => 'Liste der Leseberechtigten', 'real address' => 'Reale Addresse', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 7e4f95ccf..946aba873 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -1989,6 +1989,7 @@ 'quick playlist' => 'Quick Playlist', 'ram' => 'RAM', 'random number generator daemon' => 'Random Number Generator Daemon', +'rdns' => 'rDNS', 'read bytes' => 'Read Bytes', 'read list' => 'list with readonly hosts', 'real address' => 'Real Address',