由两部分组成,一个index.php文件,一个whois的接口文件;
1 <html>
2 <head>
3 <title>域名到期查询</title>
4 <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
5 <link href="css/reset.css" rel="stylesheet" type="text/css" />
6 <link href="css/index.css" rel="stylesheet" type="text/css" />
7 </head>
8 <body>
9 <script>
10 $(document).ready(function(){
11 $(".dj").toggle(function(){
12 $(".info_main").show();
13 $(".dj").text("-")},
14 function(){
15 $(".info_main").hide();
16 $(".dj").text("+")}
17 );
18 });
19 </script>
20 <h1>域名到期查询:</h1>
21 <form class="yuming_form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
22 <ul>
23 <li>
24 <span>输入域名:</span><input class="yuming_txt" type="text" name="yuming" /><input class="yuming_btn" type="submit" value="查询" />
25 </li>
26 </form>
27 <?php
28 include "whois.php";
29 ?>
30 <div class="info_tit">详情:<span class="dj">+</span></div>
31 <div class="info_main">
32 <?php
33 //查询域名是否被注册,等价于 $sd->PrintSta();
34 $rs = $sd->GetInfo();
35 if($rs=="ok") echo $sd->domain." 未注册!<br/>\r\n";
36 else if($rs=="") echo "无法查询 ".$sd->domain." 状态!<br/>\r\n";
37 else echo $sd->domain." 已注册,到期时间:$rs<br/>\r\n";
38 //获得域名的详细whois信息
39 echo $sd->GetWhois();
40 ?>
41 </div>
42 </body>
43 </html>
whois.php
1 <?php
2 class SearchDomain{
3 var $domain="";
4 function SetDomain($udomain){
5 $this->domain = $udomain;
6 }
7 //
8 // 获取whois并分析域名状态
9 // ok 未被注册
10 // 非空值 过期时间
11 // 空值 未知
12 //
13 function GetInfo(){
14 /*
15 $dinfo = trim($this->GetWhois());
16 if($dinfo=="") return "";
17 if(eregi("no match",$dinfo)) return "ok";
18 //return $rs;
19 */
20 $wl = "";
21 $w_server = $this->GetServer();
22 if($w_server=="") return "";
23 $fp = fsockopen($w_server, 43, $errno, $errstr, 30);
24 if(!$fp){
25 echo $errstr;
26 return "";
27 }
28
29 $out = $this->domain."\r\n";
30 $out .= "Connection: Close\r\n\r\n";
31 fputs($fp, $out);
32
33 while (!feof($fp)){
34 $wl = fgets($fp, 255);
35
36 if(eregi("no match",$wl)){
37 fclose($fp);
38 return "ok";
39 }
40 if(eregi("Expiration Date",$wl)){
41 $lines = split(":",$wl);
42 $t = trim($lines[1]);
43 $ts = split(" ",$t);
44 $t = $ts[0];
45 if(ereg("[^0-9-]",$t)){
46 $ts = split("-",$t);
47 $t = $ts[2]."-".$this->MonthToNum($ts[1])."-".$ts[0];
48 }
49 fclose($fp);
50 return $t;
51 }
52 }
53 fclose($fp);
54 return "";
55 }
56 //
57 //获得域名的整个whois信息
58 //
59 function GetWhois(){
60 $wh = "";
61 $w_server = $this->GetServer();
62 if($w_server=="") return "";
63 $fp = fsockopen($w_server, 43, $errno, $errstr, 30);
64
65 if(!$fp){
66 echo $errstr;
67 return "";
68 }
69 $out = $this->domain."\r\n";
70 $out .= "Connection: Close\r\n\r\n";
71 fputs($fp, $out);
72 while (!feof($fp)){
73 $wh .= nl2br(fgets($fp, 255));
74 }
75 fclose($fp);
76 return $wh;
77 }
78 //
79 //输出当前域名的状态信息
80 //
81 function PrintSta(){
82 $rs = $this->GetInfo();
83 if($rs=="ok") echo "<li>" . "<font>".$this->domain."</font>" . " 未注册!</li>";
84 else if($rs=="") echo "<li>" . "无法查询 " . "<font>".$this->domain."</font>" . " 状态!</li>";
85 else echo "<li>" . "<font>" . $this->domain."</font>" . " 已注册,到期时间:<font>$rs</font></li>";
86 }
87 //
88 //获得 whois 查询服务器
89 //
90 function GetServer(){
91 $udomain=substr($this->domain,-3);
92 switch($udomain){
93 case "com":
94 $w_server="whois.internic.net";
95 break;
96 case "net":
97 $w_server="whois.internic.net";
98 break;
99 case "org":
100 $w_server="whois.pir.org";
101 break;
102 case "nfo":
103 $w_server="whois.afilias.info";
104 break;
105 case "biz":
106 $w_server="whois.biz";
107 break;
108 case ".cc":
109 $w_server="whois.nic.cc";
110 break;
111 case "edu":
112 $w_server="whois.educause.net";
113 break;
114 case "gov":
115 $w_server="whois.nic.gov";
116 break;
117 case ".cn":
118 $w_server="whois.cnnic.net.cn";
119 break;
120 default:
121 $w_server="";
122 }
123 return $w_server;
124 }
125 //
126 //英语的月份转为数字
127 //
128 function MonthToNum($m){
129 $m = strtolower($m);
130
131 for($i=1;$i<=12;$i++){
132 $tt = mktime(0,0,0,$i+1,0,2005);
133 if($m==strtolower(strftime("%b",$tt))){
134 if($i>9) return $i;
135 else return "0".$i;
136 }
137 }
138 }
139 }
140 //接收域名值
141 if ($_SERVER["REQUEST_METHOD"] == "POST"){
142 $yuming = test_input($_POST["yuming"]);
143 }
144
145 function test_input($data){
146 $data = trim($data);
147 $data = stripslashes($data);
148 $data = htmlspecialchars($data);
149 return $data;
150 }
151 /* echo $yuming; */
152 $sd = new SearchDomain();
153 $sd->SetDomain($yuming);
154 $sd->PrintSta();
155 //查询域名是否被注册,等价于 $sd->PrintSta();
156 //$rs = $sd->GetInfo();
157 //if($rs=="ok") echo $sd->domain." 未注册!<br/>\r\n";
158 //else if($rs=="") echo "无法查询 ".$sd->domain." 状态!<br/>\r\n";
159 //else echo $sd->domain." 已注册,到期时间:$rs<br/>\r\n";
160 //获得域名的详细whois信息
161 //echo $sd->GetWhois();
162 ?>
注意两点:
1,index.php要include一下whois文件。
2,通过post方式传name = "yuming"这个值来实现查询,index.php传,whois.php接收。
接收方式
1 //接收域名值
2 if ($_SERVER["REQUEST_METHOD"] == "POST"){
3 $yuming = test_input($_POST["yuming"]);
4 }
5
6 function test_input($data){
7 $data = trim($data);
8 $data = stripslashes($data);
9 $data = htmlspecialchars($data);
10 return $data;
11 }
来源:https://www.cnblogs.com/wangjiayi/p/5378999.html