我遇到了以下域检查功能,我似乎无法让它工作。
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]:无法连接 to whois.verisign-grs.com:43
帮助表示赞赏!
答案 0 :(得分:0)
正如@phpdev所写:从错误消息中可以看出,whois.verisign-grs.com显然不接受端口43上的连接。您可能必须找到另一个whois服务器来传递您的请求。
我会找到verisign的解决方案:
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获取请求并瞧瞧;)
答案 1 :(得分:0)
我可以验证kristian发布的链接有效。你只需要先设置你的COOKIE。现在它的主站点上有一个验证码。
您必须让用户在那里填写验证码并存储Cookie的结果。
http://www.verisigninc.com/en_US/products-and-services/domain-name-services/whois/index.xhtml