网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > PHP > PHP编程代码 > 用PHP查询域名状态whois的类  

用PHP查询域名状态whois的类

2006-02-27  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

<?
class SearchDomain
{
        var $domain="";
        function SetDomain($udomain)
        {
                $this->domain = $udomain;
        }
        //
        // 获取whois并分析域名状态
        // ok 未被注册
        // 非空值 过期时间
        // 空值 未知
        //
        function GetInfo()
        {
                /*
                $dinfo = trim($this->GetWhois());
                if($dinfo=="") return "";

网管联盟bitsCN_com


                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";

网管联盟bitsCN@com


              $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))
                {
网管下载dl.bitscn.com

                        $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]; 网管网www.bitscn.com
                        }
                        fclose($fp);
                        return $t;
                }
              }
              fclose($fp);
              return "";
          }
        //
        //获得域名的整个whois信息
        //
        function GetWhois()
        {
                $wh = "";
                $w_server = $this->GetServer();
网管网www.bitscn.com

                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))
              { 网管网www_bitscn_com
                $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";
中国网管论坛bbs.bitsCN.com

                  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; 网管论坛bbs_bitsCN_com
                    case "net":
                              $w_server="whois.internic.net";
                              break;
                        case "org":
                              $w_server="whois.pir.org";
                                break;
                    case "nfo":
                              $w_server="whois.afilias.info";
                              break; 网管论坛bbs_bitsCN_com
                    case "biz":
                              $w_server="whois.biz";
                              break;
                    case ".cc":
                              $w_server="whois.nic.cc";
                              break;
                    case "edu":
                              $w_server="whois.educause.net";
                              break;

网管bitscn_com


                    case "gov":
                              $w_server="whois.nic.gov";
                              break;
                    case ".cn":
                              $w_server="whois.cnnic.net.cn";
                              break;
                    default:
                                $w_server="";
                  } 网管网www_bitscn_com
                  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;
网管网www.bitscn.com

                                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专区  |  评论(0)  |  浏览次数: 0
 
 
 
如何屏蔽掉phpinfo()函数
Submitted by on 2005, May 11, 10:10 AM

在 php.ini 配置文件里面有这个选项 网管联盟bitsCN@com

disable_functions = ; This directive allows you to disable certain
; functions for security reasons. It receives
; a comma separated list of function names.
; This directive is *NOT* affected by whether
; Safe Mode is turned on or off.

网管u家u.bitsCN.com

写成
disble_function = phpinfo
网管网www.bitscn.com

 
阅读全文  |  PHP专区  |  评论(0)  |  浏览次数: 0
 
 
 
几点提高php序运行效率的方法
Submitted by on 2005, May 11, 10:07 AM
1、用i+=1代替i=i+1。符合c/c++的习惯,效率还高。
网管下载dl.bitscn.com

2、尽可能的使用PHP内部函数。自己编写函数之前要详细查阅手册,看有没有相关的函数,否则费力不讨好。
3、能使用单引号字符串尽量使用单引号字符串。单引号字符串的效率要高于双引号字符串。
4、用foreach代替while遍历数组。遍历数组时foreach的效率明显高于while循环,而且不需要调用reset函数。两种遍历方法如下:
reset ($arr);
while (list($key, $value) = each ($arr)) {
echo "Key: $key; Value: $value
n";
}
foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value
n";
}

TAGs
 上一篇:PHP实现对文本数据库的五大基本操作的方法   下一篇:利用纯真QQIP数据库做快速IP归属地查询
用PHP查询域名状态whois的类 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: