SYNOPSIS

  use Net::Whois::Raw;

  $dominfo = whois('perl.com');
  ($dominfo, $whois_server) = whois('funet.fi');
  $reginfo = whois('REGRU-REG-RIPN', 'whois.ripn.net');

  $arrayref = get_whois('yahoo.co.uk', undef, 'QRY_ALL');
  $text = get_whois('yahoo.co.uk', undef, 'QRY_LAST');
  ($text, $srv) = get_whois('yahoo.co.uk', undef, 'QRY_FIRST');

  $Net::Whois::Raw::OMIT_MSG = 1;
        # This will attempt to strip several known copyright
        # messages and disclaimers sorted by servers.
        # Default is to give the whole response.

  $Net::Whois::Raw::CHECK_FAIL = 1;
        # This will return undef if the response matches
        # one of the known patterns for a failed search,
        # sorted by servers.
        # Default is to give the textual response.

  $Net::Whois::Raw::CHECK_EXCEED = 1;
        # When this option is set, "die" will be called
        # if connection rate to specific whois server have been
        # exceeded

  $Net::Whois::Raw::CACHE_DIR = "/var/spool/pwhois/";
        # Whois information will be
        # cached in this directory. Default is no cache.

  $Net::Whois::Raw::CACHE_TIME = 60;
        # Cache files will be cleared after not accessed
        # for a specific number of minutes. Documents will not be
        # cleared if they keep get requested for, independent
        # of disk space.

  $Net::Whois::Raw::TIMEOUT = 10;
        # Cancel the request if connection is not made within
        # a specific number of seconds.

  @Net::Whois::Raw::SRC_IPS = (11.22.33.44);
        # List of local IP addresses to
        # use for WHOIS queries. Addresses will be used used
        # successively in the successive queries

  $Net::Whois::Raw::POSTPROCESS{whois.crsnic.net} = \&my_func;
        # Call to a user-defined subroutine on whois result,
        # depending on whois-server.
        # Above is equil to:
        # ($text, $srv) = whois('example.com');
        # $text = my_func($text) if $srv eq 'whois.crsnic.net';

DESCRIPTION

Net::Whois::Raw queries \s-1WHOIS\s0 servers about domains. The module supports recursive \s-1WHOIS\s0 queries. Also queries via \s-1HTTP\s0 is supported for some TLDs.

Setting the variables $OMIT_MSG and $CHECK_FAIL will match the results against a set of known patterns. The first flag will try to omit the copyright message/disclaimer, the second will attempt to determine if the search failed and return undef in such a case.

\s-1IMPORTANT\s0: these checks merely use pattern matching; they will work on several servers but certainly not on all of them.

FUNCTIONS

whois( \s-1DOMAIN\s0 [, \s-1SRV\s0 [, \s-1WHICH_WHOIS\s0]] )

Returns Whois information for \*(C`DOMAIN\*(C'. Without \*(C`SRV\*(C' argument default Whois server for specified domain name zone will be used. Use 'www_whois' as server name to force \s-1WHOIS\s0 querying via \s-1HTTP\s0 (only few TLDs are supported in \s-1HTTP\s0 queries). Caching is supported: if $CACHE_DIR variable is set and there is cached entry for that domain - information from the cache will be used. \*(C`WHICH_WHOIS\*(C' argument - look get_whois docs below.

get_whois( \s-1DOMAIN\s0 [, \s-1SRV\s0 [, \s-1WHICH_WHOIS\s0]] )

Lower-level function to query Whois information for \*(C`DOMAIN\*(C'. Caching \s-1IS\s0 \s-1NOT\s0 supported (caching is implemented only in higher-level \*(C`whois\*(C' function). Without \*(C`SRV\*(C' argument default Whois server for specified domain name zone will be used. \*(C`WHICH_WHOIS\*(C' argument is used to access a results if recursive queries; possible values: 'QRY_FIRST' -

    returns results of the first query. Non't make recursive queries.
    In scalar context returns just whois text.
    In list context returns two values: whois text and whois server
    which was used to make query).

'QRY_LAST' -

    returns results of the last query.
    In scalar context returns just whois text.
    In list context returns two values: whois text and whois server
    which was used to make query).
    This is the default option.

'QRY_ALL' -

    returns results of the all queries of the recursive chain.
    Reference to array of references to hashes is returned.
    Hash keys: \*(C`text\*(C' - result of whois query, \*(C`srv\*(C' -
    whois server which was used to make query.

USER DEFINED FUNCTIONS

whois_query_sockparams( \s-1DOMAIN\s0, \s-1SRV\s0 )

You can set your own IO::Socket::INET params like this: *Net::Whois::Raw::whois_query_sockparams = sub { my $class = shift; my $domain = shift; my $name = shift;

return ( PeerAddr => $name, PeerPort => 43, # LocalHost => , # LocalPort => ); };

whois_query_socket( \s-1DOMAIN\s0, \s-1SRV\s0 )

You can set your own IO::Socket::INET like this: *Net::Whois::Raw::whois_query_socket = sub { my $class = shift; my $domain = shift; my $name = shift;

$name .= ':43'; return IO::Socket::INET->new(); };

whois_query_ua( \s-1DOMAIN\s0, \s-1SRV\s0 )

You can set your own LWP::UserAgent like this: *Net::Whois::Raw::whois_query_ua = sub { my $class = shift; my $domain = shift;

return LWP::UserAgent->new(); };

AUTHOR

Original author Ariel Brosh [email protected], Inspired by jwhois.pl available on the net.

Since Ariel has passed away in September 2002:

Past maintainers Gabor Szabo [email protected], Corris Randall [email protected]

Current Maintainer: Walery Studennikov [email protected]

CREDITS

See file \*(L"Changes\*(R" in the distribution for the complete list of contributors.

CHANGES

See file \*(L"Changes\*(R" in the distribution

NOTE

Some users complained that the die statements in the module make their \s-1CGI\s0 scripts crash. Please consult the entries on eval and die on perlfunc about exception handling in Perl.

COPYRIGHT

Copyright 2000--2002 Ariel Brosh. Copyright 2003--2003 Gabor Szabo. Copyright 2003--2003 Corris Randall. Copyright 2003--now() Walery Studennikov.

This package is free software. You may redistribute it or modify it under the same terms as Perl itself.

I apologize for any misunderstandings caused by the lack of a clear licence in previous versions.

COMMERCIAL SUPPORT

Not available anymore.

LEGAL

Notice that registrars forbid querying their whois servers as a part of a search engine, or querying for a lot of domains by script. Also, omitting the copyright information (that was requested by users of this module) is forbidden by the registrars.

RELATED TO Net::Whois::Raw…

pwhois, whois.