Board index   FAQ   Search  
Register  Login
Board index PHP PHP Scripts

whois class problem

Links for php scripts

Moderators: macek, egami, gesf

whois class problem

Postby jarecki74 » Sat Mar 15, 2014 3:32 am

hi


I ask you to help in modifying this file

whois.class.php

check only available top level domain

but not working example on second level domains like

*. co.uk

or *. com.pl


regards




whois.class.php file

Code: Select all
<?PHP
/**
 * @category ServerTools
 * @package Whois
 * @author Peter Reza Moghaddam <r324.moghaddam@gmail.com>
 * @author Peter Schmalfeldt <peter@manifestinteractive.com>
 * @link http://www.moghaddam24.ir
 * @link http://www.manifestinteractive.com
 */

/**
 * Begin Document
 */

class Whois
{

    /**
     * fsockopen port
     *
     * @var    string
     * @access private
     */
    private $port = 43;

    /**
     * fsockopen Error Number
     *
     * @var    string
     * @access private
     */
    private $errno;

    /**
     * fsockopen Error String
     *
     * @var    string
     * @access private
     */
    private $errstr;

    /**
     * fsockopen Time Out
     *
     * @var    string
     * @access private
     */
    private $timeout = 10;

    /**
     * Selected Server from $whoisservers based on TLD from $domain
     *
     * @var    string
     * @access private
     */
    private $whoisserver;

    /**
     * Available Whois Servers
     *
     * @var    array
     * @access private
     */
    private $whoisservers = array(
        "ac" => "whois.nic.ac",
        "ae" => "whois.nic.ae",
        "aero" => "whois.aero",
        "af" => "whois.nic.af",
        "ag" => "whois.nic.ag",
        "al" => "whois.ripe.net",
        "am" => "whois.amnic.net",
        "arpa" => "whois.iana.org",
        "as" => "whois.nic.as",
        "asia" => "whois.nic.asia",
        "at" => "whois.nic.at",
        "au" => "whois.aunic.net",
        "az" => "whois.ripe.net",
        "ba" => "whois.ripe.net",
        "be" => "whois.dns.be",
        "bg" => "whois.register.bg",
        "bi" => "whois.nic.bi",
        "biz" => "whois.biz",
        "bj" => "whois.nic.bj",
        "br" => "whois.registro.br",
        "bt" => "whois.netnames.net",
        "by" => "whois.ripe.net",
        "bz" => "whois.belizenic.bz",
        "ca" => "whois.cira.ca",
        "cat" => "whois.cat",
        "cc" => "whois.nic.cc",
        "cd" => "whois.nic.cd",
        "ch" => "whois.nic.ch",
        "ci" => "whois.nic.ci",
        "ck" => "whois.nic.ck",
        "cl" => "whois.nic.cl",
        "cn" => "whois.cnnic.net.cn",
        "com" => "whois.verisign-grs.com",
        "coop" => "whois.nic.coop",
        "cx" => "whois.nic.cx",
        "cy" => "whois.ripe.net",
        "cz" => "whois.nic.cz",
        "de" => "whois.denic.de",
        "dk" => "whois.dk-hostmaster.dk",
        "dm" => "whois.nic.cx",
        "dz" => "whois.ripe.net",
        "edu" => "whois.educause.edu",
        "ee" => "whois.eenet.ee",
        "eg" => "whois.ripe.net",
        "es" => "whois.ripe.net",
        "eu" => "whois.eu",
        "fi" => "whois.ficora.fi",
        "fo" => "whois.ripe.net",
        "fr" => "whois.nic.fr",
        "gb" => "whois.ripe.net",
        "gd" => "whois.adamsnames.com",
        "ge" => "whois.ripe.net",
        "gg" => "whois.channelisles.net",
        "gi" => "whois2.afilias-grs.net",
        "gl" => "whois.ripe.net",
        "gm" => "whois.ripe.net",
        "gov" => "whois.nic.gov",
        "gr" => "whois.ripe.net",
        "gs" => "whois.nic.gs",
        "gw" => "whois.nic.gw",
        "gy" => "whois.registry.gy",
        "hk" => "whois.hkirc.hk",
        "hm" => "whois.registry.hm",
        "hn" => "whois2.afilias-grs.net",
        "hr" => "whois.ripe.net",
        "hu" => "whois.nic.hu",
        "ie" => "whois.domainregistry.ie",
        "il" => "whois.isoc.org.il",
        "in" => "whois.inregistry.net",
        "info" => "whois.afilias.info",
        "int" => "whois.iana.org",
        "io" => "whois.nic.io",
        "iq" => "vrx.net",
        "ir" => "whois.nic.ir",
        "is" => "whois.isnic.is",
        "it" => "whois.nic.it",
        "je" => "whois.channelisles.net",
        "jobs" => "jobswhois.verisign-grs.com",
        "jp" => "whois.jprs.jp",
        "ke" => "whois.kenic.or.ke",
        "kg" => "www.domain.kg",
        "ki" => "whois.nic.ki",
        "kr" => "whois.nic.or.kr",
        "kz" => "whois.nic.kz",
        "la" => "whois.nic.la",
        "li" => "whois.nic.li",
        "lt" => "whois.domreg.lt",
        "lu" => "whois.dns.lu",
        "lv" => "whois.nic.lv",
        "ly" => "whois.nic.ly",
        "ma" => "whois.iam.net.ma",
        "mc" => "whois.ripe.net",
        "md" => "whois.ripe.net",
        "me" => "whois.meregistry.net",
        "mg" => "whois.nic.mg",
        "mil" => "whois.nic.mil",
        "mn" => "whois.nic.mn",
        "mobi" => "whois.dotmobiregistry.net",
        "ms" => "whois.adamsnames.tc",
        "mt" => "whois.ripe.net",
        "mu" => "whois.nic.mu",
        "museum" => "whois.museum",
        "mx" => "whois.nic.mx",
        "my" => "whois.mynic.net.my",
        "na" => "whois.na-nic.com.na",
        "name" => "whois.nic.name",
        "net" => "whois.verisign-grs.net",
        "nf" => "whois.nic.nf",
        "nl" => "whois.domain-registry.nl",
        "no" => "whois.norid.no",
        "nu" => "whois.nic.nu",
        "nz" => "whois.srs.net.nz",
        "org" => "whois.pir.org",
        "pl" => "whois.dns.pl",
        "pm" => "whois.nic.pm",
        "pr" => "whois.uprr.pr",
        "pro" => "whois.registrypro.pro",
        "pt" => "whois.dns.pt",
        "re" => "whois.nic.re",
        "ro" => "whois.rotld.ro",
        "ru" => "whois.ripn.net",
        "sa" => "whois.nic.net.sa",
        "sb" => "whois.nic.net.sb",
        "sc" => "whois2.afilias-grs.net",
        "se" => "whois.iis.se",
        "sg" => "whois.nic.net.sg",
        "sh" => "whois.nic.sh",
        "si" => "whois.arnes.si",
        "sk" => "whois.ripe.net",
        "sm" => "whois.ripe.net",
        "st" => "whois.nic.st",
        "su" => "whois.ripn.net",
        "tc" => "whois.adamsnames.tc",
        "tel" => "whois.nic.tel",
        "tf" => "whois.nic.tf",
        "th" => "whois.thnic.net",
        "tj" => "whois.nic.tj",
        "tk" => "whois.dot.tk",
        "tl" => "whois.nic.tl",
        "tm" => "whois.nic.tm",
        "tn" => "whois.ripe.net",
        "to" => "whois.tonic.to",
        "tp" => "whois.nic.tl",
        "tr" => "whois.nic.tr",
        "travel" => "whois.nic.travel",
        "tv" => "tvwhois.verisign-grs.com",
        "tw" => "whois.twnic.net.tw",
        "ua" => "whois.net.ua",
        "ug" => "whois.co.ug",
        "uk" => "whois.nic.uk",
        "us" => "whois.nic.us",
        "uy" => "nic.uy",
        "uz" => "whois.cctld.uz",
        "va" => "whois.ripe.net",
        "vc" => "whois2.afilias-grs.net",
        "ve" => "whois.nic.ve",
        "vg" => "whois.adamsnames.tc",
        "wf" => "whois.nic.wf",
        "ws" => "whois.website.ws",
        "yt" => "whois.nic.yt",
        "yu" => "whois.ripe.net");

    /**
     * Domain Name (URL or IP Address)
     *
     * @var    string
     * @access public
     */
    public $domain;

    /**
     * Full URL
     *
     * @var    string
     * @access public
     */
    public $url;

    /**
     * Domain Array containing Domain and TLD
     *
     * @var    array
     * @access public
     */
    public $domainarray;

    /**
     * Returned Whois Text
     *
     * @var    string
     * @access public
     */
    public $data;

    /**
     * Constructor
     *
     * Create Google Translate Object and Convert $string
     * <code>
     * <?php
     * $whois = new Whois("example.com");
     * echo $whois->domain;               // 'example.com'
     * echo $whois->url;                // 'http://example.com'
     * echo $whois->domainarray[0];         // 'com'
     * echo $whois->domainarray[1];         // 'example'
     * echo $whois->data;                // [ ... whois data ... ]
     *
     * $whoisFull = new Whois("http://www.example.com");
     * echo $whoisFull->domain;            // 'example.com'
     * echo $whoisFull->url;             // 'http://www.example.com'
     * echo $whoisFull->domainarray[0];      // 'com'
     * echo $whoisFull->domainarray[1];      // 'example'
     * echo $whoisFull->data;             // [ ... whois data ... ]
     *
     * $whoisIP = new Whois("123.45.678.90");
     * echo $whoisIP->domain;            // '123.45.678.90'
     * echo $whoisIP->url;                // 'http://123.45.678.90'
     * echo $whoisIP->domainarray[0];      // NULL
     * echo $whoisIP->domainarray[1];      // NULL
     * echo $whoisIP->data;             // [ ... whois data ... ]
     * ?>
     * </code>
     *
     * @param    string $domain URL or IP Address
     * @access    public
     */

    function checkDomain($domain)
    {

        $this->domain = $domain;
        $this->domain = rtrim($this->domain, "/");
        $this->domain = preg_replace('/http:\/\//', '', $this->domain);

        $this->url = (substr($this->domain, 0, 7) != 'http://') ? 'http://' . $this->
            domain : $this->domain;

        if (!preg_match('/(\d+).(\d+).(\d+).(\d+)/', $this->domain)) {
            $this->domainarray = split("\.", $this->domain);
            $this->domainarray = array_reverse($this->domainarray);
            $this->domain = $this->domainarray[1] . '.' . $this->domainarray[0];
        }

        if (strlen($this->domain) > 0) {
            foreach ($this->whoisservers as $tld => $server) {
                if (substr($this->domain, -strlen($tld)) == $tld) {
                    $this->whoisserver = $server;
                    break;
                }
            }
            if (!$this->whoisserver) {
                if (preg_match('/(\d+).(\d+).(\d+).(\d+)/', $this->domain))
                    $this->whoisserver = "whois.arin.net";
                else
                    $this->data = "Error: No appropriate Whois server found for {$this->domain} domain!";
            }

            if ($result = $this->queryServer()) {
                preg_match("/Whois Server: (.*)/", $result, $matches);
                $secondary = $matches[1];
                if ($secondary) {
                    $this->whoisserver = $secondary;
                    $result = $this->queryServer();
                }
                $this->data = $result;
            } else {
                $this->data = "Error: No results retrieved from $whoisserver server for {$this->domain} domain!";
            }
        }
    }

    /**
     * Query Selected Whois Server
     *
     * @access private
     */
    private function queryServer()
    {
        $out = "";
        $fp = @fsockopen($this->whoisserver, $this->port, $this->errno, $this->errstr, $this->
            timeout);
        fputs($fp, $this->domain . "\r\n");
        while (!feof($fp))
            $out .= fgets($fp);
        fclose($fp);
        if (strlen($out) > 0)
            return $out;
        else
            return false;
    }
   
    /**
     * Simple Whois With Details
     *
     */
    function checkExist()
    {
        //compare what has been returned by the server
        if (eregi("Can't get information", $this->data) || eregi("No entries found", $this->data) ||
            eregi("NOT FOUND", $this->data) || eregi("No match", $this->data)) {
            return 0;
        } else {
            return nl2br($this->data);
        }
    }
   
    /**
     * Simple Whois WithOut Details
     *
     */
    function existOrNo()
    {
        //compare what has been returned by the server
        if (eregi("Can't get information", $this->data) || eregi("No entries found", $this->data) ||
            eregi("NOT FOUND", $this->data) || eregi("No match", $this->data)) {
            return 0;
        } else {
            return 1;
        }
    }
}
?>


sample.php file


Code: Select all
 <?php

/**
 * -------------------------------------
 * @Author      Reza Moghaddam
 * @URL         moghaddam24.ir
 * @Email       r324.moghaddam@gmail.com
 * @Tel         09156990565
 * -------------------------------------
 */

include_once 'whois.class.php';


$whois = new Whois();
$whois->checkDomain("your-domain.com");

/*
if ( $whois->checkExist() ){
    echo $whois->checkExist();
}else{
    echo "Available For Register";
}
*/

if ( $whois->existOrNo() ){
    echo "Dont Available";
}else{
    echo "Available For Register";
}

?>
jarecki74
New php-forum User
New php-forum User
 
Posts: 1
Joined: Sat Mar 15, 2014 3:22 am

Return to PHP Scripts

Who is online

Users browsing this forum: Bing [Bot] and 1 guest

Sponsored by Sitebuilder Web hosting and Traduzioni Italiano Rumeno and antispam for cPanel.

cron