用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 相关文章推荐
一个简单实现多条件查询的例子
Oct 09 PHP
PHP测试程序运行时间的类
Feb 05 PHP
PHP过滤★等特殊符号的正则
Jan 27 PHP
ThinkPHP3.1新特性之多层MVC的支持
Jun 19 PHP
PHP中让curl支持sock5的代码实例
Jan 21 PHP
php使用curl简单抓取远程url的方法
Mar 13 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
php防止sql注入的方法详解
Feb 20 PHP
PHP 年月日的三级联动实例代码
May 24 PHP
Yii框架安装简明教程
May 15 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
通过html表格发电子邮件
2006/10/09 PHP
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
jquery 设置元素相对于另一个元素的top值(实例代码)
2013/11/06 Javascript
jQuery图片特效插件Revealing实现拉伸放大
2015/04/22 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
element-ui表格数据转换的示例代码
2018/08/24 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
JS实现多功能计算器
2020/10/28 Javascript
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
利用python将xml文件解析成html文件的实现方法
2017/12/22 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
Python 防止死锁的方法
2020/07/29 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
结构工程研究生求职信
2013/10/13 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
2015年派出所民警工作总结
2015/04/24 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript