用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 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
PHP面向对象分析设计的经验原则
Sep 20 PHP
PHP程序员最常犯的11个MySQL错误小结
Nov 20 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
解析PHP中如何将数组变量写入文件
Jun 06 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
php使用escapeshellarg时中文被过滤的解决方法
Jul 10 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
thinkPHP通用控制器实现方法示例
Nov 23 PHP
Laravel服务容器绑定的几种方法总结
Jun 14 PHP
PHP RabbitMQ消息列队
May 11 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
回帖脱衣服的图片实现代码
2014/02/15 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
php实现建立多层级目录的方法
2014/07/19 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
js实现二级导航功能
2017/03/03 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
Python 统计字数的思路详解
2018/05/08 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
python中pika模块问题的深入探究
2018/10/13 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
挪威户外活动服装和装备购物网站:Bergfreunde挪威
2016/10/20 全球购物
一篇.NET面试题
2014/09/29 面试题
幼儿园中秋节活动反思
2014/02/16 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
学生上课说话检讨书
2014/10/25 职场文书
开会通知
2015/04/20 职场文书
安全温馨提示语大全
2015/07/14 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers