用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程序时遇到的三个问题
Jan 17 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
基于php 随机数的深入理解
Jun 05 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
Aug 23 PHP
php更新mysql后获取改变行数的方法
Dec 25 PHP
PHP5.3以上版本安装ZendOptimizer扩展
Mar 27 PHP
试用php中oci8扩展
Jun 18 PHP
PHP 7的一些引人注目的新特性简单介绍
Nov 08 PHP
php自定义时间转换函数示例
Dec 07 PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 PHP
PHP strripos函数用法总结
Feb 11 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 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
浅析SVN常见问题及解决方法
2013/06/21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
Yii使用migrate命令执行sql语句的方法
2016/03/15 PHP
JS 实现完美include载入实现代码
2010/08/05 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
JS数字千分位格式化实现方法总结
2016/12/16 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
2017/01/08 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
Python 40行代码实现人脸识别功能
2017/04/02 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Python中@property的理解和使用示例
2019/06/11 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
意大利在线高尔夫商店:Online Golf
2021/03/09 全球购物
书法培训心得体会
2014/01/05 职场文书
元旦寄语大全
2014/04/10 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
医院领导班子整改方案
2014/10/01 职场文书
平安建设汇报材料
2014/12/29 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android