用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 相关文章推荐
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
MySQL 日期时间函数常用总结
Jun 12 PHP
php实现的常见排序算法汇总
Sep 08 PHP
php过滤HTML标签、属性等正则表达式汇总
Sep 22 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
浅谈PHP命令执行php文件需要注意的问题
Dec 16 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
Dec 23 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
PHP设计模式之注册树模式分析
Jan 26 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采集速度探究总结(原创)
2008/04/18 PHP
php与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
php7 新增功能实例总结
2020/05/25 PHP
QQ登录简单实现代码
2021/03/09 Javascript
JavaScript 获取事件对象的注意点
2009/07/29 Javascript
Javascript 解疑
2009/11/11 Javascript
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
跟老齐学Python之print详解
2014/09/28 Python
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
Python清空文件并替换内容的实例
2018/10/22 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
小学生开学感言
2014/02/28 职场文书
大学生毕业个人总结
2015/02/15 职场文书
大学生自荐书范文
2015/03/05 职场文书
交流会主持词
2015/07/02 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
react中props 的使用及进行限制的方法
2021/04/28 Javascript
总结python多进程multiprocessing的相关知识
2021/06/29 Python