TA的每日心情 | 奋斗 2019-10-18 11:20 |
---|
签到天数: 678 天 [LV.9]以坛为家II
|
用php查询域名的注册时间和注册状态,想看下面效果图,直接上代码:
效果演示:
- <?php
- class SearchDomain
- {
- var $domain="";
- function SetDomain($udomain)
- {
- $this->domain = $udomain;
- }
- //
- // 获取whois并分析域名状态
- // ok 未被注册
- // 非空值 过期时间
- // 空值 未知
- //
- function GetInfo()
- {
- /*
- $dinfo = trim($this->GetWhois());
- if($dinfo=="") return "";
- if(eregi("no match",$dinfo)) return "ok";
- //return $rs;
- */
- $wl = "";
- $w_server = $this->GetServer();
- if($w_server=="") return "";
- $fp = fsockopen($w_server, 43, $errno, $errstr, 30);
- if(!$fp)
- {
- echo $errstr;
- return "";
- }
- $out = $this->domain."\r\n";
- $out .= "Connection: Close\r\n\r\n";
- fputs($fp, $out);
- while (!feof($fp))
- {
- $wl = fgets($fp, 255);
- if(eregi("no match",$wl))
- {
- fclose($fp);
- return "ok";
- }
- if(eregi("Expiration Date",$wl))
- {
- $lines = split(":",$wl);
- $t = trim($lines[1]);
- $ts = split(" ",$t);
- $t = $ts[0];
- if(ereg("[^0-9-]",$t))
- {
- $ts = split("-",$t);
- $t = $ts[2]."-".$this->MonthToNum($ts[1])."-".$ts[0];
- }
- fclose($fp);
- return $t;
- }
- }
- fclose($fp);
- return "";
- }
- //
- //获得域名的整个whois信息
- //
- function GetWhois()
- {
- $wh = "";
- $w_server = $this->GetServer();
- if($w_server=="") return "";
- $fp = fsockopen($w_server, 43, $errno, $errstr, 30);
- if(!$fp)
- {
- echo $errstr;
- return "";
- }
- $out = $this->domain."\r\n";
- $out .= "Connection: Close\r\n\r\n";
- fputs($fp, $out);
- while (!feof($fp))
- {
- $wh .= nl2br(fgets($fp, 255));
- }
- fclose($fp);
- return $wh;
- }
- //
- //输出当前域名的状态信息
- //
- function PrintSta()
- {
- $rs = $this->GetInfo();
- if($rs=="ok") echo $this->domain." 未注册!
- \r\n";
- else if($rs=="") echo "无法查询 ".$this->domain." 状态!
- \r\n";
- else echo $this->domain." 已注册,到期时间:$rs
- \r\n";
- }
- //
- //获得 whois 查询服务器
- //
- function GetServer()
- {
- $udomain=substr($this->domain,-3);
- switch($udomain)
- {
- case "com":
- $w_server="whois.internic.net";
- break;
- case "net":
- $w_server="whois.internic.net";
- break;
- case "org":
- $w_server="whois.pir.org";
- break;
- case "nfo":
- $w_server="whois.afilias.info";
- break;
- case "biz":
- $w_server="whois.biz";
- break;
- case ".cc":
- $w_server="whois.nic.cc";
- break;
- case "edu":
- $w_server="whois.educause.net";
- break;
- case "gov":
- $w_server="whois.nic.gov";
- break;
- case ".cn":
- $w_server="whois.cnnic.net.cn";
- break;
- default:
- $w_server="";
- }
- return $w_server;
- }
- //
- //英语的月份转为数字
- //
- function MonthToNum($m)
- {
- $m = strtolower($m);
- for($i=1;$i<=12;$i++)
- {
- $tt = mktime(0,0,0,$i+1,0,2005);
- if($m==strtolower(strftime("%b",$tt)))
- {
- if($i>9) return $i;
- else return "0".$i;
- }
- }
- }
- }
- $sd = new SearchDomain();
- $sd->SetDomain("cnblackhat.com");
- //查询域名是否被注册,等价于 $sd->PrintSta();
- $rs = $sd->GetInfo();
- if($rs=="ok") echo $sd->domain." 未注册!
- \r\n";
- else if($rs=="") echo "无法查询 ".$sd->domain." 状态!
- \r\n";
- else echo $sd->domain." 已注册,到期时间:$rs
- \r\n";
- //获得域名的详细whois信息
- //echo $sd->GetWhois();
- ?>
复制代码 |
|