freenetis-github/application/vendors/phpwhois/README @ 8baed187
8baed187 | Michal Kliment | ||
$Id: README,v 1.20 2007/04/20 16:45:39 sparc Exp $
|
|||
Introduction
|
|||
------------
|
|||
This package contains a Whois (RFC954) library for PHP. It allows
|
|||
a PHP program to create a Whois object, and obtain the output of
|
|||
a whois query with the Lookup function.
|
|||
The response is an array containing, at least, an element 'rawdata',
|
|||
containing the raw output from the whois request.
|
|||
In addition, if the domain belongs to a registrar for which a special
|
|||
handler exists, the special handler will parse the output and make
|
|||
additional elements available in the response. The keys of these
|
|||
additional elements are described in the file HANDLERS.
|
|||
It fully supports IDNA (internationalized) domains names as
|
|||
defined in RFC3490, RFC3491, RFC3492 and RFC3454.
|
|||
It also supports ip/AS whois queries which are very useful to trace
|
|||
SPAM. You just only need to pass the doted quad ip address or the
|
|||
AS (Autonomus System) handle instead of the domain name. Limited,
|
|||
non-recursive support for Referral Whois (RFC 1714/2167) is also
|
|||
provided.
|
|||
Requirements
|
|||
------------
|
|||
phpWhois requires PHP 4.3.0 or better with OpenSSL support to
|
|||
work properly. Without SSL support you will not be able to
|
|||
query domains which do not have a whois server but that have
|
|||
a https based whois. Also, you can run it in lower PHP versions
|
|||
but without timeout control. phpWhois will not work with PHP
|
|||
versions below 4.1.0
|
|||
Installation
|
|||
------------
|
|||
Basically, untar the distribution somewhere outside your server's
|
|||
document root and make sure the directory is listed in 'include_path'
|
|||
in your php.ini file, server configuration or in an .htaccess file.
|
|||
If you want to test it using a web browser just copy example.php ,
|
|||
example.html and whois.icon.png anywhere on your server's document
|
|||
root and try it.
|
|||
phpWhois is not a PHP aplication is a class that can be used in
|
|||
applications. There is no need to make the installation folder
|
|||
accesible to anyone but PHP, nevertheless you can install it inside
|
|||
your server's document root if you like, it will work without
|
|||
problems or security risks.
|
|||
Example usage
|
|||
-------------
|
|||
(see example.php)
|
|||
include('whois.main.php');
|
|||
$whois = new Whois();
|
|||
$query = 'example.com';
|
|||
$result = $whois->Lookup($query,false);
|
|||
echo "<pre>";
|
|||
print_r($result);
|
|||
echo "</pre>";
|
|||
If you provide the domain name to query in UTF8, then you
|
|||
must use:
|
|||
$result = $whois->Lookup($query);
|
|||
If the query string is not in UTF8 then it must be in
|
|||
ISO-8859-1 or IDNA support will not work.
|
|||
What you can query
|
|||
------------------
|
|||
You can use phpWhois to query domain names, ip addresses and
|
|||
other information like AS, i.e, both of the following examples
|
|||
work:
|
|||
$whois = new Whois();
|
|||
$result = $whois->Lookup('example.com');
|
|||
$whois = new Whois();
|
|||
$result = $whois->Lookup('62.97.102.115');
|
|||
$whois = new Whois();
|
|||
$result = $whois->Lookup('AS220');
|
|||
Using special whois server
|
|||
--------------------------
|
|||
Some registrars can give special access to registered whois gateways
|
|||
in order to have more fine control against abusing the whois services.
|
|||
The currently know whois services that offer special acccess are:
|
|||
- ripe
|
|||
The new ripe whois server software support some special parameters
|
|||
that allow to pass the real client ip address. This feature is only
|
|||
available to registered gateways. If you are registered you can use
|
|||
this service when querying ripe ip addresses that way:
|
|||
$whois = new Whois();
|
|||
$whois->UseServer('uk','whois.ripe.net?-V{version},{ip} {query}');
|
|||
$result = $whois->Lookup('62.97.102.115');
|
|||
- whois.isoc.org.il
|
|||
This server is also using the new ripe whois server software and
|
|||
thus works the same way. If you are registered you can use this service
|
|||
when querying .il domains that way:
|
|||
$whois = new Whois();
|
|||
$whois->UseServer('uk','whois.isoc.org.il?-V{version},{ip} {query}');
|
|||
$result = $whois->Lookup('example.co.uk');
|
|||
- whois.nic.uk
|
|||
They offer what they call WHOIS2 (see http://www.nominet.org.uk/go/whois2 )
|
|||
to registered users (usually Nominet members) with a higher amount of
|
|||
permited queries by hour. If you are registered you can use this service
|
|||
when querying .uk domains that way:
|
|||
$whois = new Whois();
|
|||
$whois->UseServer('uk','whois.nic.uk:1043?{hname} {ip} {query}');
|
|||
$result = $whois->Lookup('example.co.uk');
|
|||
This new feature also allows you to use a different whois server than
|
|||
the preconfigured or discovered one by just calling whois->UseServer
|
|||
and passing the tld and the server and args to use for the named tld.
|
|||
For example you could use another whois server for .au domains that
|
|||
does not limit the number of requests (but provides no owner
|
|||
information) using this:
|
|||
$whois = new Whois();
|
|||
$whois->UseServer('au','whois-check.ausregistry.net.au');
|
|||
UseServer can be called as many times as necessary. Please note that
|
|||
if there is a handler for that domain it will also be called but
|
|||
returned data from the whois server may be different than the data
|
|||
expected by the handler, and thus results could be different.
|
|||
Getting results faster
|
|||
----------------------
|
|||
If you just want to know if a domain is registered or not but do not
|
|||
care about getting the real owner information you can set:
|
|||
$whois->deep_whois = false;
|
|||
this will tell phpWhois to just query one whois server. For .com, .net
|
|||
and .tv domains and ip addresses this will prevent phpWhois to ask more
|
|||
than one whois server, you will just know if the donmain is registered
|
|||
or not and which is the registrar but not the owner information.
|
|||
Notes
|
|||
-----
|
|||
There is an extended class called "whois.utils.php" which contains a
|
|||
debugging function called showObject(), if you showObject($result)
|
|||
it will output the total layout of the returned object to the
|
|||
web browser.
|
|||
The latest version of the package and a demo script resides at
|
|||
<http://phpwhois.sourceforge.net/>
|
|||
There is also be an article describing the package on devshed.com
|
|||
at <http://www.devshed.com/Server_Side/PHP/whois/>
|
|||
Support/Patches
|
|||
---------------
|
|||
If you're really stuck and can't figure something out, or you want
|
|||
to contribute an extended class for one of the TLD's, file a patch
|
|||
or support request in the SourceForge tracker. One of the developers
|
|||
will get around to applying or responding.
|
|||
<http://sourceforge.net/projects/phpwhois>
|
|||
Credits
|
|||
-------
|
|||
Mark Jeftovic <markjr@easydns.com>
|
|||
David Saez Padros <david@ols.es>
|
|||
Ross Golder <ross@golder.org>
|