What happened to whois?
pls at post.here.adam
pls at post.here.adam
Sun Feb 20 18:36:27 UTC 2000
Thanks Barry for the cool script and thanks to the others who supplied
the whois.nic.gov and the references to geektools. I will use them
both.
adam
Barry Margolin <barmar at bbnplanet.com> wrote:
>In article <88c668$p8m$1 at nnrp1.deja.com>,
>post_to_group <already_seen at my-deja.com> wrote:
>>does your script also figure out for government domains? I am trying
>>to find whois info on a .gov domain and am not sure how to find the
>>whois server(s) for those domains. A simple whois fails saying it
>>only has the com/net/org/edu domains. And search faq's etc for network
>>solutions, arin, DoD, etc. doesn't give me any ref. I am sorry if it
>>is right under my nose, but I am missing the whois servers for .gov.
>
>I use whois.nic.gov for government domains. If you query
>whois.networksolutions.com for !GOV-DOM, it will tell you:
>
> whois: whois.nic.gov
> web: www.nic.gov
> email: registrar at nic.gov
>
>Anyway, here's my script. It references a file "whohosts.txt"; I think I
>downloaded this from Richard Sexton's FTP site a while ago (although I
>don't care to read all his political posts, I am very thankful to him for
>this list), and he occasionally posts a pointer to it.
>
>#!/usr/local/bin/perl
>
>require "getopts.pl";
>require "sys/socket.ph";
>
>$port = 43;
>
>&Getopts('h:ars:');
>
>if ($#ARGV < 0) {
> print "Usage: whois [-a] [-h host] [-s source] [-r] key\n";
> exit(0);
>}
>
>$whohosts = "/home/sa/barmar/lib/whohosts.txt";
>$whohosts = "/users/barmar/lib/whohosts.txt" unless -f $whohosts;
>if (open (WHOHOSTS, "<$whohosts"))
>{
> while (<WHOHOSTS>)
> {
> next if /^#/;
> if (/^(.+):(\S+)/)
> {
> $whois_server{$1} = $2;
> }
> }
> close(WHOHOSTS)
>}
>
>$last_arg = "\L$ARGV[$#ARGV]";
>
>($suffix) = $last_arg =~ /\.([^.]+)$/;
>
>if ($opt_h)
>{
> $whoishost = $opt_h;
>} elsif ($ARGV[0] =~ /^asn?$|^net(work)?$/ || $last_arg =~ /^((asn|net)(blk)?)-[^.]+$|^(\d+.){0,2}\d+(\.0)?$|-arin$/i)
>{
> if ($last_arg =~ /^20[23]\.|^21[01]\./)
> {
> $whoishost = "whois.apnic.net";
> } elsif ($last_arg =~ /^19[3-5]\.|^21[23]\./)
> {
> $whoishost = "whois.ripe.net";
> } else
> {
> $whoishost = "whois.arin.net";
> }
>} elsif ($ARGV[0] =~ /^(host|server|server)$/i)
>{
> $whoishost = "whois.networksolutions.com";
>} elsif ($last_arg =~ /-hst$|-dom|-org$/i)
>{
> $whoishost = "whois.networksolutions.com";
> $ARGV[$#ARGV] = "!$last_arg";
>}
> elsif ($whoishost = $whois_server{$suffix})
>{
>} elsif ($last_arg =~ /\.[a-z][a-z]$/)
>{ # country domain, assume Europe
> $whoishost = "whois.ripe.net";
>} else {
> $whoishost = "whois.networksolutions.com";
>}
>
>$sockaddr = 'S n a4 x8';
>($name, $aliases, $type, $len, $thataddr) = gethostbyname($whoishost);# || die "gethostbyname($whoishost): $!\n";
>die "gethostbyname($whoishost): $!\n" unless $thataddr;
>
>$that = pack($sockaddr, &AF_INET, $port, $thataddr);
>socket(S, &AF_INET, &SOCK_STREAM, $proto) || die "socket failed: $!\n";
>connect(S, $that) || die "Connect failed: $!\n";
>select(S); $| = 1; select(STDOUT);
>
>if ($opt_a) { print S "-a "; }
>if ($opt_r) { print S "-r "; }
>if ($opt_s) { print S "-s $opt_s "; }
>
>print S "@ARGV\n";
>
>print <S>;
post here so everyone can benefit, but to write me:
a d a m - s a t p a c b e l l d o t n e t
More information about the bind-users
mailing list