0

我遇到了以下域检查功能,但似乎无法正常工作。

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."\r\n");  

// 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

帮助表示赞赏!

4

2 回答 2

0

我可以验证克里斯蒂安发布的链接是否有效。您只需要先设置您的 COOKIE。它现在在其位于此处的主要站点上有一个验证码。

您必须让您的用户在那里填写验证码并存储 cookie 的结果。

http://www.verisigninc.com/en_US/products-and-services/domain-name-services/whois/index.xhtml

于 2012-07-30T02:36:23.463 回答
0

正如@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_tldcomnet,基于域 然后只需使用 curl 或 file_get_contents 获取请求,瞧;)

于 2012-07-13T09:44:47.230 回答