Here's something to play with. I have a script, which was written some time ago, which runs as a BBEdit Perl Filter. It takes a list of domains/IP addresses and passes them through a whois proxy server.
It has some limitations however. The proxy "whois.geektools.com" limits the number of queries per day to 50. It is quite easy using this script to RAPIDLY exceed that limit. The proxy itself often times has a lot of users, and its connection to external resources can go down from time to time. Here is the script: #!/usr/bin/perl -wnl sub BEGIN { use IO::Socket; $host = "whois.geektools.com"; $| = 1; } $sock = new IO::Socket::INET(PeerAddr => $host, PeerPort => 43, Proto => 'tcp'); die "IO::Socket::INET $!" unless $sock; print $sock "$_"; print $sock "\x0A\x0D"; while(defined($line = <$sock>)) { $line =~ tr/\x0A/\x0D/; chomp $line; print $line; } close($sock); print "\n"; __END__ For domain names, the place to start with is whois.crsnic.net. For IP addresses, start with whois.arin.net. crisnic.net will return which registrar's whois server to look up the domain with. ARIN returns the owner for that IP range or a reference to the correct counterpart overseas. CRSNIC produces fairly consistant output, however the output of ARIN varies depending on where the IP address is allocated. My problem is one of parsing the output, much of which is extraneous. Sample CRSNIC output: Whois Server Version 1.3 Domain names in the .com, .net, and .org domains can now be registered with many different competing registrars. Go to http://www.internic.net for detailed information. Domain Name: CAVEMANOG.ORG Registrar: TUCOWS, INC. Whois Server: whois.opensrs.net Referral URL: http://www.opensrs.org Name Server: SJC.NAMESERVER.NET Name Server: SOU.NAMESERVER.NET Updated Date: 01-jun-2001 >>> Last update of whois database: Sat, 29 Sep 2001 05:50:16 EDT <<< The Registry database contains ONLY .COM, .NET, .ORG, .EDU domains and Registrars. Sample ARIN output (IP range in North America): Concentric Network Corporation (NET-CNCX-BLK-1) CNCX-BLK-1 205.158.0.0 - 205.158.255.255 PC Skill Center (NETBLK-INEXVAR-PCSKILLCENTER) INEXVAR-PCSKILLCENTER 205.158.160.0 - 205.158.175.255 To single out one record, look it up with "!xxx", where xxx is the handle, shown in parenthesis following the name, which comes first. The ARIN Registration Services Host contains ONLY Internet Network Information: Networks, ASN's, and related POC's. Please use the whois server at rs.internic.net for DOMAIN related Information and whois.nic.mil for NIPRNET Information. Sample ARIN output (IP range in Europe): European Regional Internet Registry/RIPE NCC (NET-RIPE-NCC-) These addresses have been further assigned to European users. Contact info can be found in the RIPE database, via the WHOIS and TELNET servers at whois.ripe.net, and at http://www.ripe.net/db/whois.html NL Netname: RIPE-NCC-212 Netblock: 212.0.0.0 - 212.255.255.255 Maintainer: RIPE Coordinator: Reseaux IP European Network Co-ordination Centre Singel 258 (RIPE-NCC-ARIN) [EMAIL PROTECTED] +31 20 535 4444 Domain System inverse mapping provided by: NS.RIPE.NET 193.0.0.193 NS.EU.NET 192.16.202.11 AUTH03.NS.UU.NET 198.6.1.83 NS2.NIC.FR 192.93.0.4 SUNIC.SUNET.SE 192.36.125.2 MUNNARI.OZ.AU 128.250.1.21 NS.APNIC.NET 203.37.255.97 To search on arbitrary strings, see the Database page on the RIPE NCC web-site at http://www.ripe.net/db/ Record last updated on 16-Oct-1998. Database last updated on 28-Sep-2001 23:24:38 EDT. The ARIN Registration Services Host contains ONLY Internet Network Information: Networks, ASN's, and related POC's. Please use the whois server at rs.internic.net for DOMAIN related Information and whois.nic.mil for NIPRNET Information. One last thing: The source code for the geektools whois proxy is available, and might serve as inspiration. See: http://www.geektools.com/software.php which also contains a list of whois servers.