用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 相关文章推荐
pdo中使用参数化查询sql
Aug 11 PHP
apache mysql php 源码编译使用方法
May 03 PHP
PHP Global变量定义当前页面的全局变量实现探讨
Jun 05 PHP
php中sprintf与printf函数用法区别解析
Feb 17 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
smarty高级特性之过滤器的使用方法
Dec 25 PHP
最新版本PHP 7 vs HHVM 多角度比较
Feb 14 PHP
php时间计算相关问题小结
May 09 PHP
jQuery+php简单实现全选删除的方法
Nov 28 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 PHP
php读取本地json文件的实例
Mar 07 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 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
session在PHP大型web应用中的使用
2011/06/25 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
2017/02/08 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
js判断节假日实例代码
2017/12/27 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
2018/11/05 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
Python 的 with 语句详解
2014/06/13 Python
Python实现文件内容批量追加的方法示例
2017/08/29 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
kali中python版本的切换方法
2019/07/11 Python
安装PyInstaller失败问题解决
2019/12/14 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
护士的自我鉴定
2014/02/07 职场文书
党员实事承诺书
2014/03/26 职场文书
委托公证书范本
2014/04/03 职场文书
机械专业技术员求职信
2014/06/14 职场文书
镇创先争优活动总结
2014/08/28 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
天堂的孩子观后感
2015/06/11 职场文书
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
浅谈Python数学建模之线性规划
2021/06/23 Python