我发现了下面的域检查函数,但我似乎无法使其工作。
function domain_checker($domain){
$extension = explode(".",$domainname);
$extension = $extension[1];
switch($extension)
{
case "com": $server = "whois.verisign-grs.com"; break;
case "net": $server = "whois.verisign-grs.com"; break;
case "org": $server = "whois.pir.org"; break;
case "info": $server = "whois.afilias.net"; break;
case "biz": $server = "whois.biz"; break;
case "name": $server = "whois.nic.name"; break;
default: return "Given Extension not supported"; exit();
}
// connecting to the whois server.
$handle = fsockopen($server, 43);
if (!$handle)
return false; // connectin failure
//asking the server
fwrite($handle, $domainname."rn");
// getting response
$response = '';
while (!feof($handle))
$response .= fgets($handle, 1024);
fclose($handle);
//checking if domain is available or not
if($extension=="com" || $extension=="net" || $extension=="name")
{
if(stripos($response, 'No match') === FALSE )
return $domainname." is not Available!";
else
return $domainname. " is Available!";
}
else
{
if(stripos($response, "NOT FOUND") === FALSE)
return $domainname. " is not Available!";
else
return $domainname. " is Available!";
}
}
我一直得到以下错误:
警告:fsockopen()[function.fsockopen]:无法连接致whois.verisign grs.com:43
感谢帮助!
正如@phpdev所写:从错误消息中可以明显看出,whois.verisign-grs.com不接受端口43上的连接。您可能需要找到另一个whois服务器来将您的请求传递到。
我会找到一个验证的解决方案:
http://www.verisigninc.com/cgi-bin/whois?type=domain&eswhois_nic=google.com&whois_tld=com
参数:eswhois_nic
是域名,whois_tld
是com或net,基于域然后用curl或file_get_contents和voila获取请求即可;)
我可以验证kristian发布的链接是否有效。你只需要先设置你的COOKIE。它现在在位于这里的主站点上有一个captcha。
你必须让你的用户在那里填写captcha并存储cookie的结果。
http://www.verisigninc.com/en_US/products-and-services/domain-name-services/whois/index.xhtml