用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创建PDF中文文档
Oct 09 PHP
PHP中的超全局变量
Oct 09 PHP
超级简单的发送邮件程序
Oct 09 PHP
探讨如何把session存入数据库
Jun 07 PHP
探讨:如何使用PhpDocumentor生成文档
Jun 25 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
PHP获取表单所有复选框的值的方法
Aug 28 PHP
php绘制一个扇形的方法
Jan 24 PHP
PHP实现QQ登录实例代码
Jan 14 PHP
php生成无限栏目树
Mar 16 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
PHP实现简单注册登录系统
Dec 28 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基础学习之变量的使用
2011/06/09 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
一张图带我们入门Python基础教程
2017/02/05 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
Python中的枚举类型示例介绍
2019/01/09 Python
python下载微信公众号相关文章
2019/02/26 Python
python实现计算器功能
2019/10/31 Python
python实现ftp文件传输功能
2020/03/20 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
运动会演讲稿
2014/05/07 职场文书
十佳护士先进事迹
2014/05/08 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
党支部培养考察意见
2015/06/02 职场文书
党章学习心得体会2016
2016/01/14 职场文书
导游词之南京夫子庙
2019/12/09 职场文书