PHP domain age checker script

I was looking for php domain age checker script so I googled for it, but didn’t found any useful code. So I decided to write my own. It may be useful for webmasters. This script is based on our previous php whois script which extracts whois information from whois server.

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 . "rn");
  $out = "";
  while(!feof($fp)){
  $out .= fgets($fp);
  }
  fclose($fp);
  return $out;
  }
}

How this script works?

This script has array of whois server along with regular expression pattern for domain registration date because each TLD has different whois server and different whois result format. First it extracts whois information from whois server same as in our previous php whois script. Then it extracts domain registration date from whois result using regular expression. In next step it converts domain registration date into UNIX timestamp using php strtotime function. Finally it subtracts domain registration timestamp from current timestamp to get domain age in seconds.

How To Use It?

Save above class as DomainAge.class.php and use following code

require("DomainAge.class.php");
$w=new DomainAge();
echo $w->age("99webtools.com");

Liked It? Get Free updates in your Email

Delivered by feedburner

6 thoughts on “PHP domain age checker script

  1. Pingback: Bulk domain age checker, bulk domain expiry date check?

  2. Pingback: Bulk domain age checker, bulk domain expiry date check?

  3. faraz
    #

    script is not working no output blank page

    Reply
  4. Prateek
    #

    Script is not working 🙁 I get a white blank page.

    Reply
  5. Sandeep
    #

    Hey dude this script is not working?? Please check the script once again.

    Reply
    1. sunny Post author
      #

      This script will work online for some TLDs

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *