PHP查詢域名年齡腳本類

dongxue 9年前發布 | 13K 次閱讀 域名年齡 PHP開發

如果我們需要自己做一個域名查詢年齡的腳本可以使用下面的腳本。
   

    class DomainAge{
    private $WHOIS_SERVERS=array(
    “com” => array(“whois.verisign-grs.com”,”/Creation Date:(.*)/”),
    “net” => array(“whois.verisign-grs.com”,”/Creation Date:(.*)/”),
    “org” => array(“whois.pir.org”,”/Created On:(.*)/”),
    “info” => array(“whois.afilias.info”,”/Created On:(.*)/”),
    “biz” => array(“whois.neulevel.biz”,”/Domain Registration Date:(.*)/”),
    “us” => array(“whois.nic.us”,”/Domain Registration Date:(.*)/”),
    “uk” => array(“whois.nic.uk”,”/Registered on:(.*)/”),
    “ca” => array(“whois.cira.ca”,”/Creation date:(.*)/”),
    “tel” => array(“whois.nic.tel”,”/Domain Registration Date:(.*)/”),
    “ie” => array(“whois.iedr.ie”,”/registration:(.*)/”),
    “it” => array(“whois.nic.it”,”/Created:(.*)/”),
    “cc” => array(“whois.nic.cc”,”/Creation Date:(.*)/”),
    “ws” => array(“whois.nic.ws”,”/Domain Created:(.*)/”),
    “sc” => array(“whois2.afilias-grs.net”,”/Created On:(.*)/”),
    “mobi” => array(“whois.dotmobiregistry.net”,”/Created On:(.*)/”),
    “pro” => array(“whois.registrypro.pro”,”/Created On:(.*)/”),
    “edu” => array(“whois.educause.net”,”/Domain record activated:(.*)/”),
    “tv” => array(“whois.nic.tv”,”/Creation Date:(.*)/”),
    “travel” => array(“whois.nic.travel”,”/Domain Registration Date:(.*)/”),
    “in” => array(“whois.inregistry.net”,”/Created On:(.*)/”),
    “me” => array(“whois.nic.me”,”/Domain Create Date:(.*)/”),
    “cn” => array(“whois.cnnic.cn”,”/Registration Date:(.*)/”),
    “asia” => array(“whois.nic.asia”,”/Domain Create Date:(.*)/”),
    “ro” => array(“whois.rotld.ro”,”/Registered On:(.*)/”),
    “aero” => array(“whois.aero”,”/Created On:(.*)/”),
    “nu” => array(“whois.nic.nu”,”/created:(.*)/”)
    );
    public function age($domain)
    {
    $domain = trim($domain); //remove space from start and end of domain
    if(substr(strtolower($domain), 0, 7) == “http://”) $domain = substr($domain, 7); // remove http:// if included
    if(substr(strtolower($domain), 0, 4) == “www.”) $domain = substr($domain, 4);//remove www from domain
    if(preg_match(“/^([-a-z0-9]{2,100})\.([a-z\.]{2,8})$/i”,$domain))
    {
    $domain_parts = explode(“.”, $domain);
    $tld = strtolower(array_pop($domain_parts));
    if(!$server=$this->WHOIS_SERVERS[$tld][0]) {
    return false;
    }
    $res=$this->queryWhois($server,$domain);
    if(preg_match($this->WHOIS_SERVERS[$tld][1],$res,$match))
    {
    date_default_timezone_set(‘UTC’);
    $time = time() – strtotime($match[1]);
    $years = floor($time / 31556926);
    $days = floor(($time % 31556926) / 86400);
    if($years == “1”) {$y= “1 year”;}
    else {$y = $years . ” years”;}
    if($days == “1”) {$d = “1 day”;}
    else {$d = $days . ” days”;}
    return “$y, $d”;
    }
    else
    return false;
    }
    else
    return false;
    }
    private function queryWhois($server,$domain)
    {
    $fp = @fsockopen($server, 43, $errno, $errstr, 20) or die(“Socket Error ” . $errno . ” – ” . $errstr);
    if($server==”whois.verisign-grs.com”)
    $domain=”=”.$domain;
    fputs($fp, $domain . “\r\n”);
    $out = “”;
    while(!feof($fp)){
    $out .= fgets($fp);
    }
    fclose($fp);
    return $out;
    }
    }


如何使用?

    require(“DomainAge.class.php”);
    $w=new DomainAge();
    echo $w->age(“laodong.me”);
本文鏈接:http://www.laodong.me/php-domain-age-checker/

 本文由用戶 dongxue 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!