用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入库和出库
Jun 25 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
Jun 05 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
php编写简单的文章发布程序
Jun 18 PHP
Yii开启片段缓存的方法
Mar 28 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
Jul 14 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
PHP数据库编程之MySQL优化策略概述
Aug 16 PHP
Laravel框架中自定义模板指令总结
Dec 17 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
Jan 10 PHP
php解压缩zip和rar压缩包文件的方法
Jul 10 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
May 02 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 编程请选择正确的文本编辑软件
2006/12/21 PHP
php win下Socket方式发邮件类
2009/08/21 PHP
php批量上传的实现代码
2013/06/09 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
php 猴子摘桃的算法
2017/06/20 PHP
javascript 表单规则集合对象
2009/07/21 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
对python 操作solr索引数据的实例详解
2018/12/07 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
PHP统计代码行数的小代码
2019/09/19 Python
上海某公司.net方向笔试题
2014/09/14 面试题
五四青年节优秀演讲稿范文
2014/05/28 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
2014年教务处工作总结
2014/12/03 职场文书
优秀党员事迹材料
2014/12/18 职场文书
离婚协议书范本
2015/01/26 职场文书
教育教学读书笔记
2015/07/02 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
话题作文之诚信
2019/11/28 职场文书
Python编程源码报错解决方法总结经验分享
2021/10/05 Python