用PHP查询域名状态whois的类


Posted in PHP onNovember 25, 2006
<? 
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." 未注册!<br/>\r\n"; 
 else if($rs=="") echo "无法查询 ".$this->domain." 状态!<br/>\r\n"; 
 else echo $this->domain." 已注册,到期时间:$rs<br/>\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-1; 
 else return "0".$i-1; 
 } 
 } 
 } 
} $sd = new SearchDomain(); 
$sd->SetDomain("job-sky.com"); 
//查询域名是否被注册,等价于 $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(); 
?>
PHP 相关文章推荐
php快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
PHP文件打开、关闭、写入的判断与执行代码
May 24 PHP
php 操作符与控制结构
Mar 07 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
如何用C语言编写PHP扩展的详解
Jun 13 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
php实现的支持断点续传的文件下载类
Sep 23 PHP
laravel 4安装及入门图文教程
Oct 29 PHP
PHP中static关键字以及与self关键字的区别
Jul 01 PHP
PHP 与 UTF-8 的最佳实践详细介绍
Jan 04 PHP
tp5框架使用cookie加密算法实现登录功能示例
Feb 10 PHP
生成静态页面的PHP类
Nov 25 #PHP
PHP静态类
Nov 25 #PHP
PHP文本操作类
Nov 25 #PHP
小偷PHP+Html+缓存
Nov 25 #PHP
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 #PHP
如何使用PHP中的字符串函数
Nov 24 #PHP
PHP常用代码
Nov 23 #PHP
You might like
php join函数应用
2011/05/04 PHP
PHP的PSR规范中文版
2013/09/28 PHP
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
joomla数据库操作示例代码
2016/01/06 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
php中的钩子理解及应用实例分析
2019/08/30 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
javascript的对话框详解与参数
2007/03/08 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
Python 多维List创建的问题小结
2019/01/18 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
电子商务专业个人的自我评价分享
2013/10/29 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
房地产项目合作意向书
2015/05/08 职场文书
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python