NetWhois()のサポート用クラス

提供:wiki - PCスキルの小技・忘却防止メモ
移動: 案内, 検索

NetWhois()のサポート用クラス。

ソース

とりあえずドメインの取得日を取る。他の項目は未対応。

※基本、whoisのソースをパースする感じなので随時、記載を増やしていく必要がある。

<?php
require_once "Net/Whois.php"; // PEARのパスを指定する

/**
 * class class_whois - Whoisへクエリを投げる
 */
class ClassWhoisSupport{
	
	var $_host = NULL;
	var $_server = NULL;
	
	function __construct($uri="") {
		if ($uri != "") {
			$this->_getHostToUri($uri);
			$this->_server = $this->_getConnectWhoisServer();
		}
	}
	
	function __destruct(){}
	
	// ==============================================================
	// メソッド
	
	/**
	 * setHost() - ホストをセット
	 */
	function setHost($host="") {
		$this->_host = $host;
		$this->_getPrefixWords();
		$this->_server = $this->_getConnectWhoisServer();
	}
	
	/**
	 * setHostFromUri() - URIからホストをセット
	 */
	function setHostFromUri($uri="") {
		$this->_getHostToUri($uri);
		$this->_server = $this->_getConnectWhoisServer();
	}
	
	/**
	 * clear() - メモリの開放用に。
	 */
	function clear() {
		$this->_host = NULL;
		$this->_server = NULL;
	}
	
	/**
	 * getRegistration() - ドメイン登録日の取得
	 */
	function getRegistration() {
		if ($this->_host == "") {
			return false;
		}
		
		$progress = array();
		
		do {
			$whoisData = $this->getInfoFromWhois();
			
			$registAry = $this->chkIncludeRegistration($whoisData);
			$this->extendDomainLevel();
			
			$tmp["whois"] = $whoisData;
			$tmp["registAry"] = $registAry;
			$progress[] = $tmp;
			unset($tmp);
			
			if ($registAry!==false) {
				break;
			}
			else {
				sleep(1);
			}
		}
		while ($this->_host!==false);
		
		$result["progress"] = $progress;
		if ($registAry === false) {
			$result["regist"][] = "Err or unKnown";
		}
		else {
			foreach ($registAry as $registUnixDate) {
				$result["regist"][] = date("Y-m-d", $registUnixDate);
			}
		}
		
		return $result;
	}
	
	/**
	 * chkIncludeRegistration() - 登録日が含まれいるかをチェックする
	 * @param str $returnWhois Whoisからの返り値
	 */
	function chkIncludeRegistration( $returnWhois ) {
		$arys = explode("\n", $returnWhois);
		
		$regist = $this->_getRegistRegularExpression();
		
		$registPatternMatch   = "/{$regist}[ :\.\t]*(.*)$/iu";
		$registPatternReplace = "/^.*{$regist}/iu";
		
		foreach( $arys as $v ) {
			if( preg_match($registPatternMatch, $v) ) {
				// 登録日らしきものがあれば余分なものを削除して、日付だけを配列へ
				$temp = $v;
				$temp = preg_replace("/(\n|\r)/u", "", $temp);
				$temp = preg_replace($registPatternReplace, "", $temp);
				$temp = preg_replace("/(\(YYYY-MM-DD\))/", "", $temp);
				$temp = preg_replace("/\.$/", "", $temp);
				$temp = preg_replace("/(\. )/", "/", $temp);
				$temp = trim($temp);
				$temp = preg_replace("/^:/", "", $temp);
				$temp = trim($temp);
				
				// unixタイムに変換
				if(strtotime( (string) $temp )) {
					$temps[] = strtotime( (string) $temp );
				}
				else {
					$temps[] = "登録日は空白";
				}
				unset($temp);
			}
		}
		
		if( isset($temps) ) {
			return $temps;
		}
		else {
			return false;
		}
	}
	
	/**
	 * extendDomainLevel() - ドメインレベルを広げる
	 */
	function extendDomainLevel() {
		if( strstr($this->_host, '.') ) {
			$this->_host = preg_replace("/^.+?(\.)/u", "", $this->_host);
			$this->_getPrefixWords();
		}
		else {
			$this->_host = false;
		}
	}
	
	/**
	 * getInfoFromWhois() - Whoisにドメインを投げる
	 */
	function getInfoFromWhois() {
		// whoisのオブジェクト作成:PEARが必要
		$whois = new Net_Whois();
		
		// ドメインをWhoisへ投げる
		if( $this->_server === false ) {
			$data = $whois->query($this->_host);
		}
		else {
			$data = $whois->query($this->_host, $this->_server);
		}
		
		// 文字コードの変換
		$charCode = $this->_checkEncodeOfFile($data);
		$whoisData = mb_convert_encoding(mb_convert_encoding($data, "sjis-win", $charCode), "UTF-8", "sjis-win");
		
		return $whoisData;
	}
	
	/**
	 * getHostToUri() - URIからホストを取得
	 */
	private function _getHostToUri($uri) {
		$pieces = parse_url( $uri );
		$this->_host = isset( $pieces['host']) ? $pieces['host'] : ;
		$this->_getPrefixWords();
	}
	
	/**
	 * _getPrefixWords() - 特定のホストの場合「=」を接頭詞にする
	 */
	private function _getPrefixWords() {
		// 接頭詞
		$prefix = "";
		
		// 接頭詞が「=」
		$topLevelDomain = array("com");
		foreach( $topLevelDomain as $v ) {
			$chkPattern = "/\." . $v . "$/iu";
			if( preg_match($chkPattern, $this->_host) ) {
				$prefix = "=";
				break;
			}
		}
		
		// 接頭詞が「DOM 」
		$topLevelDomain = array("jp");
		foreach( $topLevelDomain as $v ) {
			$chkPattern = "/\." . $v . "$/iu";
			if( preg_match($chkPattern, $this->_host) ) {
				$prefix = "DOM ";
				break;
			}
		}
		
		$this->_host = $prefix . $this->_host;
	}
	
	/**
	 * _getSecoundLevelDomain() - 特定のトップレベルドメインの場合はセカンドレベル(?)まで取得
	 */
	private function _getSecoundLevelDomain($seconds) {
		$tlds = explode(".", $this->_host);
		$tldNum = count($tlds) - 2;
		
		$secondLevelDomain = "";
		foreach( $seconds as $v ) {
			if( $tlds[$tldNum] === $v ) {
				$secondLevelDomain = "{$v}.";
				break;
			}
		}
		return $secondLevelDomain;
	}
	
	/**
	 * _getTopLevelDomain() - トップレベルドメインを取得
	 */
	private function _getTopLevelDomain() {
		$tlds = explode(".", $this->_host);
		$tldNum = count($tlds) - 1;
		
		switch($tlds[$tldNum]){
			case 'au':
				$seconds = array('asn', 'com', 'id', 'net', 'org');
				$topLevelDomain = $this->_getSecoundLevelDomain($seconds);
				break;
			case 'br':
				$seconds = array('com', 'gov', 'net');
				$topLevelDomain = $this->_getSecoundLevelDomain($seconds);
				break;
			case 'cn':
				$seconds = array('ah', 'bj', 'cq', 'edu', 'fj', 'gd', 'gs', 'gx', 'gz', 'ha', 'hb', 'he', 'hi', 'hk', 'hl', 'hn', 'jl', 'js', 'jx', 'ln', 'mo', 'net', 'nm', 'nx', 'qh', 'sc', 'sd', 'sh', 'sn', 'sx', 'tj', 'tw', 'xj', 'xz', 'yn', 'zj');
				$topLevelDomain = $this->_getSecoundLevelDomain($seconds);
				break;
			case 'com':
				$seconds = array('br', 'cn', 'de', 'eu', 'gb', 'hu', 'jpn', 'no', 'qc', 'ru', 'sa', 'se', 'uk', 'us', 'uy', 'web', 'za');
				$topLevelDomain = $this->_getSecoundLevelDomain($seconds);
				break;
			case 'net':
				$seconds = array('gb', 'se', 'uk');
				$topLevelDomain = $this->_getSecoundLevelDomain($seconds);
				break;
			case 'org':
				$seconds = array('eu');
				$topLevelDomain = $this->_getSecoundLevelDomain($seconds);
				break;
			case 'th':
				$seconds = array('net');
				$topLevelDomain = $this->_getSecoundLevelDomain($seconds);
				break;
			case 'tw':
				$seconds = array('com', 'edu', 'idv', 'net');
				$topLevelDomain = $this->_getSecoundLevelDomain($seconds);
				break;
			case 'uk':
				$seconds = array('ac', 'gov');
				$topLevelDomain = $this->_getSecoundLevelDomain($seconds);
				break;
			case 'us':
				$seconds = array('fed');
				$topLevelDomain = $this->_getSecoundLevelDomain($seconds);
				break;
			case 'za':
				$seconds = array('ac', 'org');
				$topLevelDomain = $this->_getSecoundLevelDomain($seconds);
				break;
			default:
				$topLevelDomain = "";
				break;
		}
		
		return $topLevelDomain . $tlds[$tldNum];
	}
	
	/**
	 * getConnectWhoisServer() - ドメインからトップレベルドメインを取得し、接続先サーバを返す
	 * @param str $domain ドメイン
	 */
	private function _getConnectWhoisServer() {
		// トップレベルドメインを取得
		$tld = $this->_getTopLevelDomain();
		
		switch($tld){
			case 'aero':		return 'whois.aero';
			case 'arpa':		return 'whois.iana.org';
			case 'asia':		return 'whois.nic.asia';
			case 'biz':			return 'whois.biz';
			case 'cat':			return 'whois.cat';
			case 'com':			return 'whois.verisign-grs.com';
			case 'coop':		return 'whois.nic.coop';
			case 'edu':			return 'whois.educause.edu';
			case 'gov':			return 'whois.dotgov.gov';
			case 'info':		return 'whois.afilias.net';
			case 'int':			return 'whois.iana.org';
			case 'jobs':		return 'jobswhois.verisign-grs.com';
			case 'mil':			return 'whois.nic.mil';
			case 'mobi':		return 'whois.dotmobiregistry.net';
			case 'museum':		return 'whois.museum';
			case 'name':		return 'whois.nic.name';
			case 'net':			return 'whois.verisign-grs.com';
			case 'org':			return 'whois.pir.org';
			case 'pro':			return 'whois.registrypro.pro';
			case 'tel':			return 'whois.nic.tel';
			case 'travel':		return 'whois.nic.travel';
			case 'ac':			return 'whois.nic.ac';
			case 'ad':			return 'whois.ripe.net';
			case 'ae':			return 'whois.nic.ae';
			case 'af':			return 'whois.nic.af';
			case 'ag':			return 'whois.nic.ag';
			case 'ai':			return 'whois.ai';
			case 'al':			return 'whois.ripe.net';
			case 'am':			return 'whois.amnic.net';
			case 'as':			return 'whois.nic.as';
			case 'at':			return 'whois.nic.at';
			case 'au':			return 'whois.aunic.net';
			case 'az':			return 'whois.ripe.net';
			case 'ba':			return 'whois.ripe.net';
			case 'be':			return 'whois.dns.be';
			case 'bg':			return 'whois.register.bg';
			case 'bm':			return 'rwhois.ibl.bm';
			case 'bo':			return 'whois.adsib.gob.bo';
			case 'br':			return 'whois.registro.br';
			case 'bt':			return 'whois.nic.bt';
			case 'bv':			return 'whois.ripe.net';
			case 'by':			return 'whois.ripe.net';
			case 'bz':			return 'whois.belizenic.bz';
			case 'ca':			return 'whois.cira.ca';
			case 'cc':			return 'ccwhois.verisign-grs.com';
			case 'cd':			return 'whois.nic.cd';
			case 'ch':			return 'whois.nic.ch';
			case 'ci':			return 'whois.nic.ci';
			case 'ck':			return 'whois.ck-nic.org.ck';
			case 'cl':			return 'whois.nic.cl';
			case 'cn':			return 'whois.cnnic.cn';
			case 'cx':			return 'whois.nic.cx';
			case 'cy':			return 'whois.ripe.net';
			case 'cz':			return 'whois.nic.cz';
			case 'de':			return 'whois.denic.de';
			case 'dk':			return 'whois.dk-hostmaster.dk';
			case 'dm':			return 'whois.nic.dm';
			case 'do':			return 'whois.nic.do';
			case 'dz':			return 'whois.ripe.net';
			case 'ee':			return 'whois.eenet.ee';
			case 'eg':			return 'whois.ripe.net';
			case 'es':			return 'whois.ripe.net';
			case 'eu':			return 'whois.eu';
			case 'fi':			return 'whois.ficora.fi';
			case 'fj':			return 'whois.usp.ac.fj';
			case 'fo':			return 'whois.ripe.net';
			case 'fr':			return 'whois.nic.fr';
			case 'ga':			return 'whois.ripe.net';
			case 'gb':			return 'whois.ripe.net';
			case 'gd':			return 'whois.adamsnames.com';
			case 'ge':			return 'whois.ripe.net';
			case 'gf':			return 'whois.nplus.gf';
			case 'gg':			return 'whois.channelisles.net';
			case 'gi':			return 'whois2.afilias-grs.net';
			case 'gl':			return 'whois.ripe.net';
			case 'gm':			return 'whois.ripe.net';
			case 'gr':			return 'whois.ripe.net';
			case 'gs':			return 'whois.nic.gs';
			case 'gy':			return 'whois.registry.gy';
			case 'hk':			return 'whois.hkirc.hk';
			case 'hm':			return 'whois.nic.hm';
			case 'hn':			return 'whois2.afilias-grs.net';
			case 'hr':			return 'whois.ripe.net';
			case 'hu':			return 'whois.nic.hu';
			case 'id':			return 'whois.idnic.net.id';
			case 'ie':			return 'whois.domainregistry.ie';
			case 'il':			return 'whois.isoc.org.il';
			case 'in':			return 'whois.inregistry.net';
			case 'io':			return 'whois.nic.io';
			case 'ir':			return 'whois.nic.ir';
			case 'is':			return 'whois.isnet.is';
			case 'it':			return 'whois.nic.it';
			case 'je':			return 'whois.channelisles.net';
			case 'jo':			return 'whois.ripe.net';
			case 'jp':			return 'whois.jprs.jp';
			case 'ke':			return 'whois.kenic.or.ke';
			case 'kg':			return 'whois.domain.kg';
			case 'kh':			return 'whois.knnic.net.kh';
			case 'ki':			return 'whois.nic.ki';
			case 'kp':			return 'whois.kcce.kp';
			case 'kr':			return 'whois.nic.or.kr';
			case 'kz':			return 'whois.nic.kz';
			case 'la':			return 'whois.nic.la';
			case 'li':			return 'whois.nic.li';
			case 'lk':			return 'whois.nic.lk';
			case 'lt':			return 'whois.domreg.lt';
			case 'lu':			return 'whois.dns.lu';
			case 'lv':			return 'whois.nic.lv';
			case 'ly':			return 'whois.nic.ly';
			case 'ma':			return 'whois.iam.net.ma';
			case 'md':			return 'whois.nic.md';
			case 'me':			return 'whois.nic.me';
			case 'mg':			return 'whois.nic.mg';
			case 'mk':			return 'whois.ripe.net';
			case 'mm':			return 'whois.nic.mm';
			case 'mn':			return 'whois.nic.mn';
			case 'ms':			return 'whois.adamsnames.tc';
			case 'mt':			return 'whois.ripe.net';
			case 'mu':			return 'whois.nic.mu';
			case 'mx':			return 'whois.nic.mx';
			case 'my':			return 'whois.mynic.net.my';
			case 'na':			return 'whois.na-nic.com.na';
			case 'ng':			return 'whois.rg.net';
			case 'nl':			return 'whois.domain-registry.nl';
			case 'no':			return 'whois.norid.no';
			case 'nu':			return 'whois.nic.nu';
			case 'nz':			return 'whois.srs.net.nz';
			case 'pe':			return 'whois.nic.pe';
			case 'pk':			return 'whois.pknic.net.pk';
			case 'pl':			return 'whois.dns.pl';
			case 'pm':			return 'whois.nic.pm';
			case 'pr':			return 'whois.uprr.pr';
			case 'pt':			return 'whois.dns.pt';
			case 'pw':			return 'whois.nic.pw';
			case 're':			return 'whois.nic.re';
			case 'ro':			return 'whois.rotld.ro';
			case 'ru':			return 'whois.ripn.net';
			case 'sa':			return 'whois.nic.net.sa';
			case 'sb':			return 'whois.nic.net.sb';
			case 'sc':			return 'whois2.afilias-grs.net';
			case 'se':			return 'whois.iis.se';
			case 'sg':			return 'whois.nic.net.sg';
			case 'sh':			return 'whois.nic.sh';
			case 'si':			return 'whois.arnes.si';
			case 'sj':			return 'whois.ripe.net';
			case 'sk':			return 'whois.ripe.net';
			case 'sm':			return 'whois.ripe.net';
			case 'so':			return 'whois.nic.so';
			case 'sr':			return 'whois.register.sr';
			case 'st':			return 'whois.nic.st';
			case 'su':			return 'whois.ripn.net';
			case 'tc':			return 'whois.adamsnames.tc';
			case 'tf':			return 'whois.nic.tf';
			case 'th':			return 'whois.thnic.co.th';
			case 'tj':			return 'whois.nic.tj';
			case 'tk':			return 'whois.dot.tk';
			case 'tl':			return 'whois.nic.tl';
			case 'tm':			return 'whois.nic.tm';
			case 'tn':			return 'whois.ripe.net';
			case 'to':			return 'whois.tonic.to';
			case 'tr':			return 'whois.nic.tr';
			case 'tv':			return 'tvwhois.verisign-grs.com';
			case 'tw':			return 'whois.twnic.net.tw';
			case 'ua':			return 'whois.net.ua';
			case 'ug':			return 'whois.co.ug';
			case 'uk':			return 'whois.nic.uk';
			case 'us':			return 'whois.nic.us';
			case 'uy':			return 'www.rau.edu.uy';
			case 'uz':			return 'whois.cctld.uz';
			case 'va':			return 'whois.ripe.net';
			case 've':			return 'whois.nic.ve';
			case 'vg':			return 'whois.adamsnames.tc';
			case 'wf':			return 'whois.nic.wf';
			case 'ws':			return 'whois.website.ws';
			case 'yt':			return 'whois.nic.yt';
			case 'yu':			return 'whois.ripe.net';
			case 'asn.au':		return 'whois.ausregistry.net.au';
			case 'com.au':		return 'whois.ausregistry.net.au';
			case 'id.au':		return 'whois.ausregistry.net.au';
			case 'net.au':		return 'whois.ausregistry.net.au';
			case 'org.au':		return 'whois.ausregistry.net.au';
			case 'com.br':		return 'whois.registro.br';
			case 'gov.br':		return 'whois.registro.br';
			case 'net.br':		return 'whois.registro.br';
			case 'ah.cn':		return 'whois.cnnic.net.cn';
			case 'bj.cn':		return 'whois.cnnic.net.cn';
			case 'cq.cn':		return 'whois.cnnic.net.cn';
			case 'edu.cn':		return 'whois.edu.cn';
			case 'fj.cn':		return 'whois.cnnic.net.cn';
			case 'gd.cn':		return 'whois.cnnic.net.cn';
			case 'gs.cn':		return 'whois.cnnic.net.cn';
			case 'gx.cn':		return 'whois.cnnic.net.cn';
			case 'gz.cn':		return 'whois.cnnic.net.cn';
			case 'ha.cn':		return 'whois.cnnic.net.cn';
			case 'hb.cn':		return 'whois.cnnic.net.cn';
			case 'he.cn':		return 'whois.cnnic.net.cn';
			case 'hi.cn':		return 'whois.cnnic.net.cn';
			case 'hk.cn':		return 'whois.cnnic.net.cn';
			case 'hl.cn':		return 'whois.cnnic.net.cn';
			case 'hn.cn':		return 'whois.cnnic.net.cn';
			case 'jl.cn':		return 'whois.cnnic.net.cn';
			case 'js.cn':		return 'whois.cnnic.net.cn';
			case 'jx.cn':		return 'whois.cnnic.net.cn';
			case 'ln.cn':		return 'whois.cnnic.net.cn';
			case 'mo.cn':		return 'whois.cnnic.net.cn';
			case 'net.cn':		return 'whois.cnnic.net.cn';
			case 'nm.cn':		return 'whois.cnnic.net.cn';
			case 'nx.cn':		return 'whois.cnnic.net.cn';
			case 'qh.cn':		return 'whois.cnnic.net.cn';
			case 'sc.cn':		return 'whois.cnnic.net.cn';
			case 'sd.cn':		return 'whois.cnnic.net.cn';
			case 'sh.cn':		return 'whois.cnnic.net.cn';
			case 'sn.cn':		return 'whois.cnnic.net.cn';
			case 'sx.cn':		return 'whois.cnnic.net.cn';
			case 'tj.cn':		return 'whois.cnnic.net.cn';
			case 'tw.cn':		return 'whois.cnnic.net.cn';
			case 'xj.cn':		return 'whois.cnnic.net.cn';
			case 'xz.cn':		return 'whois.cnnic.net.cn';
			case 'yn.cn':		return 'whois.cnnic.net.cn';
			case 'zj.cn':		return 'whois.cnnic.net.cn';
			case 'br.com':		return 'whois.centralnic.net';
			case 'cn.com':		return 'whois.centralnic.net';
			case 'de.com':		return 'whois.centralnic.net';
			case 'eu.com':		return 'whois.centralnic.net';
			case 'gb.com':		return 'whois.nomination.net';
			case 'hu.com':		return 'whois.centralnic.net';
			case 'jpn.com':		return 'whois.centralnic.net';
			case 'no.com':		return 'whois.centralnic.net';
			case 'qc.com':		return 'whois.centralnic.net';
			case 'ru.com':		return 'whois.centralnic.net';
			case 'sa.com':		return 'whois.centralnic.net';
			case 'se.com':		return 'whois.centralnic.net';
			case 'uk.com':		return 'whois.centralnic.net';
			case 'us.com':		return 'whois.centralnic.net';
			case 'uy.com':		return 'whois.centralnic.net';
			case 'web.com':		return 'whois.centralnic.net';
			case 'za.com':		return 'whois.centralnic.net';
			case 'gb.net':		return 'whois.nomination.net';
			case 'se.net':		return 'whois.centralnic.net';
			case 'uk.net':		return 'whois.centralnic.net';
			case 'eu.org':		return 'whois.eu.org';
			case 'net.th':		return 'whois.thnic.net';
			case 'com.tw':		return 'whois.twnic.net';
			case 'edu.tw':		return 'whois.twnic.net';
			case 'idv.tw':		return 'whois.twnic.net';
			case 'net.tw':		return 'whois.twnic.net';
			case 'ac.uk':		return 'whois.ja.net';
			case 'gov.uk':		return 'whois.ja.net';
			case 'fed.us':		return 'whois.nic.gov';
			case 'ac.za':		return 'whois.ac.za';
			case 'org.za':		return 'whois.org.za:4321';
			default:			return false;
		}
	}
	
	/*
	 * 登録日関連の記述の正規表現を作成
	 *
	 * ▼2013/11/28の段階での戻り値
	 * /\[?(((creat(ion|ed)|regist(ration|ered)|record created)[- ](date|on))|(登録年月日)|((Registered|Created|Create Date|record activated|Domain Name Commencement Date)[:]))\]?[ :\. ]*(.*)$/iu
	 */
	private function _getRegistRegularExpression() {
		
		$haveChara = "("
		           . "creat(ion|ed)"
		           . "|"
		           . "regist(ration|ered)"
		           . "|"
		           . "record created"
		           . ")[- ](date|on)";
		
		$haveOnes = array("Registered", "Created", "Create Date", "record activated", "Domain Name Commencement Date");
		$haveOne = "(("
		         . implode('|', $haveOnes)
		         . ")[:])";
		
		$re = '\[?(' 
		    . '(' . $haveChara . ')'
		    . '|(登録年月日)|' 
		    . $haveOne 
		    . ')\]?';
		    
		return $re;
	}
	
	private function _checkEncodeOfFile($str){
		$enc = "auto";
		
		// 文字コード一覧
		$charArys = array("JIS","JIS-ms","ISO-2022-JP","ISO-2022-JP-MS","UTF-8","ASCII","EUC-JP","SJIS","eucJP-win","SJIS-win","CP51932");
		foreach ($charArys as $charset){
			if ( $str == mb_convert_encoding($str, $charset, $charset) ){
				$enc = $charset;
				return $enc;
			}
		}
		return $enc;
	}
}

?>

※PEARのNet_Whoisが必要。http://pentan.info/php/sample/net_whois.html

呼出し

<?php
	require_once "class_whois_support.php";
	
	$domain = "tips.recatnap.info";
	//$url = "http://tips.recatnap.info";
	
	$classWhois = new ClassWhoisSupport();
	
	$classWhois->setHost($domain);
	//$classWhois->setHostFromUri($url);
	
	// ドメイン取得日を取得する
	$registAry = $classWhois->getRegistration();
	print_r($registAry["regist"][0]);
?>

関連項目