ipinfo.cgi: Fix for new arin whois protocol.
authorArne Fitzenreiter <arne_f@ipfire.org>
Tue, 14 Dec 2010 21:12:48 +0000 (22:12 +0100)
committerArne Fitzenreiter <arne_f@ipfire.org>
Tue, 14 Dec 2010 21:12:48 +0000 (22:12 +0100)
config/rootfiles/core/44/filelists/files
html/cgi-bin/ipinfo.cgi

index 33f781c..44b01ac 100644 (file)
@@ -9,6 +9,7 @@ etc/rc.d/init.d/networking/red.up/99-fireinfo
 srv/web/ipfire/cgi-bin/extrahd.cgi
 srv/web/ipfire/cgi-bin/credits.cgi
 srv/web/ipfire/cgi-bin/index.cgi
+srv/web/ipfire/cgi-bin/ipinfo.cgi
 srv/web/ipfire/cgi-bin/pakfire.cgi
 srv/web/ipfire/cgi-bin/proxy.cgi
 srv/web/ipfire/cgi-bin/speed.cgi
index bc214f0..71098a2 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -39,8 +39,6 @@ my %cgiparams=();
 $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");
-
 &Header::openpage($Lang::tr{'ip info'}, 1, '');
 
 &Header::openbigbox('100%', 'left');
@@ -58,15 +56,15 @@ next if $addr eq "";
        my $sock = new IO::Socket::INET ( PeerAddr => $whoisname, PeerPort => 43, Proto => 'tcp');
        if ($sock)
        {
-               print $sock "$addr\n";
+               print $sock "$addr\n";
                while (<$sock>) {
-                       $extraquery = $1 if (/NetType:    Allocated to (\S+)\s+/);
+                       $extraquery = $1 if (/ReferralServer: whois:\/\/(\S+)\s+/);
                        push(@lines,$_);
                }
                close($sock);
                if ($extraquery) {
                        undef (@lines);
-                       $whoisname = $whois_servers{$extraquery};
+                       $whoisname = $extraquery;
                        my $sock = new IO::Socket::INET ( PeerAddr => $whoisname, PeerPort => 43, Proto => 'tcp');
                        if ($sock)
                        {