博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php调用whois接口域名查询
阅读量:4954 次
发布时间:2019-06-12

本文共 5705 字,大约阅读时间需要 19 分钟。

由两部分组成,一个index.php文件,一个whois的接口文件;

1  2  3 域名到期查询 4  5 
6
7 8 9 20

域名到期查询:

21
" method="post">22
    23
  • 24 输入域名:25
  • 26 27
    30
    详情:
    +
    31
    32
    PrintSta();34 $rs = $sd->GetInfo();35 if($rs=="ok") echo $sd->domain." 未注册!
    \r\n";36 else if($rs=="") echo "无法查询 ".$sd->domain." 状态!
    \r\n";37 else echo $sd->domain." 已注册,到期时间:$rs
    \r\n";38 //获得域名的详细whois信息39 echo $sd->GetWhois();40 ?>41
    42 43

whois.php

1 
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 "
  • " . "".$this->domain."" . " 未注册!
  • "; 84 else if($rs=="") echo "
  • " . "无法查询 " . "".$this->domain."" . " 状态!
  • "; 85 else echo "
  • " . "" . $this->domain."" . " 已注册,到期时间:$rs
  • "; 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." 未注册!
    \r\n";158 //else if($rs=="") echo "无法查询 ".$sd->domain." 状态!
    \r\n";159 //else echo $sd->domain." 已注册,到期时间:$rs
    \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

    你可能感兴趣的文章
    【LaTeX】E喵的LaTeX新手入门教程(1)准备篇
    查看>>
    Alpha版(内部测试版)发布
    查看>>
    Python2和Python3的不同
    查看>>
    递归实验的三个作业实验(阶乘,杨辉三角,汉诺塔,回文)
    查看>>
    highcharts曲线图
    查看>>
    编写移植性好的C代码
    查看>>
    JS去除数组重复元素
    查看>>
    [八省联考2018]林克卡特树lct
    查看>>
    extjs动态改变样式
    查看>>
    PL/SQL Developer 查询的数据有乱码或者where 字段名=字段值 查不出来数据
    查看>>
    宏定义
    查看>>
    Nginx05---负载均衡 upsteam
    查看>>
    ubuntu12.04 串口登录系统配置
    查看>>
    poj3061
    查看>>
    linux--多进程进行文件拷贝
    查看>>
    笔记:git基本操作
    查看>>
    根据屏幕分辨率变化动态调整工具条位置
    查看>>
    ORACLE 将查询结果中的多个字段值赋给变量
    查看>>
    在powershell上使用python。
    查看>>
    c语言基础(一)
    查看>>