Home » Php » networking – How to check a domain age using php

networking – How to check a domain age using php

Posted by: admin July 12, 2020 Leave a comment

Questions:

Hello I was wondering if there is a nice way to find out what is the age of a specific domain.

But I want to find out a way to do this programmatically asking the DNS to check a domain age using php and not from an online tool.

I am searching on the internet to find out how google is checking my domain age and other SEO tools.

Is this information private for a domain where you must have special permissions to ask what a domains age is? And if yes? How come google knows my domain age? noone asked my domains age.. how come they know it?

How to&Answers:

You want WHOIS, most recently defined in RFC3912:

$ whois stackoverflow.com

Whois Server Version 2.0

Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.

   Domain Name: STACKOVERFLOW.COM
   Registrar: GODADDY.COM, INC.
   Whois Server: whois.godaddy.com
   Referral URL: http://registrar.godaddy.com
   Name Server: NS1.SERVERFAULT.COM
   Name Server: NS2.SERVERFAULT.COM
   Name Server: NS3.SERVERFAULT.COM
   Status: clientDeleteProhibited
   Status: clientRenewProhibited
   Status: clientTransferProhibited
   Status: clientUpdateProhibited
   Updated Date: 30-nov-2010
   Creation Date: 26-dec-2003
   Expiration Date: 26-dec-2014

   [...]

Answer:

You’re looking for the Whois service.

PHPWhois: PHP class for whois queries, can query the correct whois server for domain names, ip addresses and AS handles and returns data in a structured array.

Answer:

Are you looking for a php script or a web service?

If a web service, then check out this bulk domain age checker tool, it let you find out domain registration date and expiration date plus registrar name. You can bulk check 500 domains at once.

Hope this help

Answer:

Registration date is available via WHOIS for most TLDs, and is not in DNS.

For com/net domains, you can check whois.internic.net for the “Creation Date”. For most country TLDs, you can find WHOIS servers by doing a DNS query of “country-code.whois-servers.net”. The command line WHOIS client in most BSD and Linux variants will look for the proper WHOIS servers automatically.

Note that each registrar has their own format for presenting this information, and most have implemented controls on their WHOIS servers to restrict frequent requests from the same IP address.

Have a look at PHPWhois.

Answer:

Use this PHP script to check domain age and here you can find working domain age checker

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);

  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;
  }

}