zoukankan      html  css  js  c++  java
  • php调用whois接口域名查询

    由两部分组成,一个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/>
    ";
    36             else if($rs=="") echo "无法查询 ".$sd->domain." 状态!<br/>
    ";
    37             else echo $sd->domain." 已注册,到期时间:$rs<br/>
    ";
    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."
    ";
     30         $out .= "Connection: Close
    
    ";
     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."
    ";
     70         $out .= "Connection: Close
    
    ";
     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/>
    ";
    158     //else if($rs=="") echo "无法查询 ".$sd->domain." 状态!<br/>
    ";
    159     //else echo $sd->domain." 已注册,到期时间:$rs<br/>
    ";
    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     }
  • 相关阅读:
    转载 HtmlParser 抓取大众点评评论的代码
    转载 Oracle 11g R2的卸载与重装
    转载 java控制对象的序列化和反序列化
    转载 java序列化与反序列化
    转载 自定义Android标题栏TitleBar布局
    转载 简明Vim练级攻略
    转载 Http Tcp
    百度坐标拾取
    转载 Google Maps API Web Services文档使用
    转载 Android环境的搭建
  • 原文地址:https://www.cnblogs.com/wangjiayi/p/5378999.html
Copyright © 2011-2022 走看看