用PHP查询域名状态whois的类_PHP
程序员文章站
2022-06-11 23:45:07
...
WHOIS
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." 未注册! \r\n"; else if($rs=="") echo "无法查询 ".$this->domain." 状态! \r\n"; else echo $this->domain." 已注册,到期时间:$rs \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 { $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." 未注册! \r\n"; else if($rs=="") echo "无法查询 ".$sd->domain." 状态! \r\n"; else echo $sd->domain." 已注册,到期时间:$rs \r\n"; //获得域名的详细whois信息 //echo $sd->GetWhois(); ?> |
阅读全文 | PHP专区 | 评论(0) | 浏览次数: 0 |
|
||
在 php.ini 配置文件里面有这个选项 disable_functions = ; This directive allows you to disable certain 写成 |
||
阅读全文 | PHP专区 | 评论(0) | 浏览次数: 0 |
|
||
1、用i+=1代替i=i+1。符合c/c++的习惯,效率还高。 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"; } |
上一篇: 分布式常用技术有哪些?