Revision: 7386
http://sourceforge.net/p/ipcop/svn/7386
Author: owes
Date: 2014-03-31 04:35:39 +0000 (Mon, 31 Mar 2014)
Log Message:
-----------
Add AfriNIC. Add color and more clearer errors/warnings if lookup fails.
Modified Paths:
--------------
ipcop/trunk/html/cgi-bin/ipinfo.cgi
ipcop/trunk/updates/2.1.3/ROOTFILES.i486-2.1.3
Modified: ipcop/trunk/html/cgi-bin/ipinfo.cgi
===================================================================
--- ipcop/trunk/html/cgi-bin/ipinfo.cgi 2014-03-29 08:20:30 UTC (rev 7385)
+++ ipcop/trunk/html/cgi-bin/ipinfo.cgi 2014-03-31 04:35:39 UTC (rev 7386)
@@ -1,12 +1,23 @@
#!/usr/bin/perl
#
-# SmoothWall CGIs
+# This file is part of the IPCop Firewall.
#
-# This code is distributed under the terms of the GPL
+# IPCop is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
#
+# IPCop is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with IPCop. If not, see <http://www.gnu.org/licenses/>.
+#
# (c) The SmoothWall Team
-#
# (c) 2002 Josh Grubman <[email protected]> - Multiple registry IP lookup code
+# (c) 2014, the IPCop team
#
# $Id$
#
@@ -31,7 +42,12 @@
$ENV{'QUERY_STRING'} =~s/&//g;
my @addrs = split(/ip=/,$ENV{'QUERY_STRING'});
-my %whois_servers =
("RIPE"=>"whois.ripe.net","APNIC"=>"whois.apnic.net","LACNIC"=>"whois.lacnic.net");
+my %whois_servers = (
+ "AfriNIC" => "whois.afrinic.net",
+ "APNIC" => "whois.apnic.net",
+ "LACNIC" => "whois.lacnic.net",
+ "RIPE" => "whois.ripe.net",
+);
&Header::openpage($Lang::tr{'ip info'}, 1, '');
@@ -43,19 +59,31 @@
$extraquery='';
@lines=();
+ my $iaddr = inet_aton($addr);
+ if (! defined($iaddr) ) {
+ &Header::openbox('100%', 'left', $Lang::tr{'lookup failed'}, 'error');
+ print $Lang::tr{'invalid address'} . ": ". &Header::cleanhtml($addr) .
"<br />";
+ &add_back();
+ &Header::closebox();
+ next;
+ }
my $whoisname = "whois.arin.net";
- my $iaddr = inet_aton($addr);
my $hostname = gethostbyaddr($iaddr, AF_INET);
- if (!$hostname) {
- $hostname = $Lang::tr{'lookup failed'};
+ if (!$hostname) {
+ &Header::openbox('100%', 'left', $Lang::tr{'lookup failed'},
'warning');
+ print $Lang::tr{'lookup failed'} . ": ". &Header::cleanhtml($addr) .
"<br /><hr />";
}
+ else {
+ &Header::openbox('100%', 'left', $addr . ' (' . $hostname . ') :
'.$whoisname);
+ }
my $sock = new IO::Socket::INET ( PeerAddr => $whoisname, PeerPort => 43,
Proto => 'tcp');
if ($sock) {
print $sock "$addr\n";
while (<$sock>) {
$extraquery = $1 if (/NetType:\s+Allocated to (\S+)\s+/);
+ $extraquery = $1 if (/NetType:\s+Transferred to (\S+)\s+/);
push(@lines,$_);
}
close($sock);
@@ -79,23 +107,26 @@
@lines = ( "$Lang::tr{'unable to contact'} $whoisname" );
}
- &Header::openbox('100%', 'left', $addr . ' (' . $hostname . ') :
'.$whoisname);
print "<pre>\n";
foreach my $line (@lines) {
print &Header::cleanhtml($line,"y");
}
print "</pre>\n";
+ &add_back();
+ &Header::closebox();
+}
+
+&Header::closebigbox();
+
+&Header::closepage();
+
+sub add_back {
+
if (defined($ENV{'HTTP_REFERER'})) {
# Offer 'back' if there is a referer
print "<hr /><div align='left'>";
print "<a href='$ENV{'HTTP_REFERER'}'><img src='/images/back.png'
alt='$Lang::tr{'back'}' title='$Lang::tr{'back'}' /></a>";
print "</div>";
}
-
- &Header::closebox();
}
-
-&Header::closebigbox();
-
-&Header::closepage();
Modified: ipcop/trunk/updates/2.1.3/ROOTFILES.i486-2.1.3
===================================================================
--- ipcop/trunk/updates/2.1.3/ROOTFILES.i486-2.1.3 2014-03-29 08:20:30 UTC
(rev 7385)
+++ ipcop/trunk/updates/2.1.3/ROOTFILES.i486-2.1.3 2014-03-31 04:35:39 UTC
(rev 7386)
@@ -1,6 +1,7 @@
## please place IPCop files first, then packages sorted by alphabetical order
/etc/profile
/etc/rc.d/rc.sysinit
+/home/httpd/cgi-bin/ipinfo.cgi
/home/httpd/cgi-bin/logproxy.cgi
/home/httpd/cgi-bin/logsystem.cgi
/home/httpd/cgi-bin/proxy.cgi
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
Ipcop-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ipcop-svn