php调用whois接口域名查询
由两部分组成,一个index.php文件,一个whois的接口文件;
<html>
<head>
<title>域名到期查询</title>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<link href="css/reset.css" rel="stylesheet" type="text/css" />
<link href="css/index.css" rel="stylesheet" type="text/css" />
</head>
<body>
<script>
$(document).ready(function(){
$(".dj").toggle(function(){
$(".info_main").show();
$(".dj").text("-")},
function(){
$(".info_main").hide();
$(".dj").text("+")}
);
});
</script>
<h1>域名到期查询:</h1>
<form class="yuming_form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
<ul>
<li>
<span>输入域名:</span><input class="yuming_txt" type="text" name="yuming" /><input class="yuming_btn" type="submit" value="查询" />
</li>
</form>
<?php
include "whois.php";
?>
<div class="info_tit">详情:<span class="dj">+</span></div>
<div class="info_main">
<?php
//查询域名是否被注册,等价于 $sd->PrintSta();
$rs = $sd->GetInfo();
if($rs=="ok") echo $sd->domain." 未注册!<br/>\r\n";
else if($rs=="") echo "无法查询 ".$sd->domain." 状态!<br/>\r\n";
else echo $sd->domain." 已注册,到期时间:$rs<br/>\r\n";
//获得域名的详细whois信息
echo $sd->GetWhois();
?>
</div>
</body>
</html>
whois.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 "<li>" . "<font>".$this->domain."</font>" . " 未注册!</li>";
else if($rs=="") echo "<li>" . "无法查询 " . "<font>".$this->domain."</font>" . " 状态!</li>";
else echo "<li>" . "<font>" . $this->domain."</font>" . " 已注册,到期时间:<font>$rs</font></li>";
}
//
//获得 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;
}
}
}
}
//接收域名值
if ($_SERVER["REQUEST_METHOD"] == "POST"){
$yuming = test_input($_POST["yuming"]);
} function test_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
/* echo $yuming; */
$sd = new SearchDomain();
$sd->SetDomain($yuming);
$sd->PrintSta();
//查询域名是否被注册,等价于 $sd->PrintSta();
//$rs = $sd->GetInfo();
//if($rs=="ok") echo $sd->domain." 未注册!<br/>\r\n";
//else if($rs=="") echo "无法查询 ".$sd->domain." 状态!<br/>\r\n";
//else echo $sd->domain." 已注册,到期时间:$rs<br/>\r\n";
//获得域名的详细whois信息
//echo $sd->GetWhois();
?>
注意两点:
1,index.php要include一下whois文件。
2,通过post方式传name = "yuming"这个值来实现查询,index.php传,whois.php接收。
接收方式
//接收域名值
if ($_SERVER["REQUEST_METHOD"] == "POST"){
$yuming = test_input($_POST["yuming"]);
} function test_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
php调用whois接口域名查询的更多相关文章
- 调用API接口,查询手机号码归属地(3)
从mysql数据库获取电话号码,查询归属地并插入到数据库 #!/usr/bin/python # -*- coding: utf-8 -*- import json, urllib, sys, pym ...
- 调用API接口,查询手机号码归属地(2)
使用pymysql pip install pymysql 创建mysql测试表 CREATE TABLE `userinfo` ( `id` int(20) NOT NULL AUTO_INCREM ...
- 调用API接口,查询手机号码归属地(1)
使用https://www.juhe.cn/提供的接口,查询归属地 在官网注册key即可使用. 代码如下 #!/usr/bin/python # -*- coding: utf-8 -*- impor ...
- 给MySQL增加mysql-udf-http和mysql-udf-json自定义函数,让MySQL有调用http接口和查询直接回JSON的能力
1.安装mysql-udf-httpyum install -y libcurl*下载地址:http://pan.baidu.com/s/1nuYZqR3tar zxvf mysql-udf-http ...
- 调用phone库,查询手机号码归属地(4)
需要安装pymysql,phone库 #!/usr/bin/python # -*- coding: utf-8 -*- import sys, pymysql, logging, phone fro ...
- 【转】万网域名查询接口(API)的说明
1.域名查询接口采用HTTP,POST,GET协议:调用URL:http://panda.www.net.cn/cgi-bin/check.cgi参数名称:area_domain 值为标准域名,例:h ...
- python3实现域名查询和whois查询
关键字:python3 域名查询 域名查询接口 whois查询原文:http://www.cnblogs.com/txw1958/archive/2012/08/31/python3-domain-w ...
- 万网域名查询API接口
域名查询 接口地址:http://panda.www.net.cn/cgi-bin/check.cgi 接口采用HTTP,POST,GET协议 参数名称:area_domain 值为标准域名,例:nm ...
- WebApi接口 - 如何在应用中调用webapi接口
很高兴能再次和大家分享webapi接口的相关文章,本篇将要讲解的是如何在应用中调用webapi接口:对于大部分做内部管理系统及类似系统的朋友来说很少会去调用别人的接口,因此可能在这方面存在一些困惑,希 ...
随机推荐
- WebService地址变成计算机名的解决办法
WCF 4.0 has solved this issue in some instances with a new config option that use Request Headers: & ...
- RavenScheme简介
RavenScheme简介 RavenScheme使用了一个运行『读入-求值-打印』循环的解释器.该解释器从标准输入反复的读入表达式,对得到的表达式求值,然后打印出结果. 如果用户键入: [加 1 2 ...
- 【转】做产品VS做项目
相关定义 根据GB/T19000—2008<质量管理体系基础和术语>,有以下定义 过程process 一组将输入转化为输出的相互关联或相互作用的活动 注:一个过程的输入通常是其他过程的输出 ...
- Maven初学之经验浅谈
关于Maven这个东西,我不做任何评价. 直接上资料,适合初学者 推荐资料 http://www.imooc.com/learn/443 www.imooc.com/article/15037 还有个 ...
- JavaScript入门(10)
一.Window对象 window对象是BOM的核心,window对象指当前的浏览器窗口 window对象方法 二.JavaScript计时器 在JavaScript中,我们可以在设定的时间间隔之后来 ...
- php处理字符串常用函数
1查找字符位置函数: strpos($str,search,[int]):查找search在$str中的第一次位置从int开始: stripos($str,search,[int]):函数返回字符串在 ...
- js事件监听机制(事件捕获)总结
在前端开发过程中我们经常会遇到给页面元素添加事件的问题,添加事件的js方法也很多,有直接加到页面结构上的,有使用一些js事件监听的方法,由于各个浏览器对事件冒泡事件监听的机制不同,le浏览器只有事件冒 ...
- 通过GitHub部署网站到Azure WebSite
一.将代码上传到GitHub存储库中 第一步:创建Github新账户 第二步:新建仓库 第三步:安装Github shell程序,地址:http://windows.github.com/ 第四步:打 ...
- 通过自关联替代开窗函数实现SQL优化
数据库环境:SQL SERVER 2005 我们平时都是通过开窗析函数来取代自关联,减少表扫描,从而优化SQL.今天,反其道而行, 用自关联改写开窗函数.我们先来看一下SQL. 原SQL语句 SELE ...
- iOS推送通知流程
①注册推送通知使用方法:registerUserNotificationSettings, registerForRemoteNotifications ④APP发送deviceToken到第三方: ...