【发布时间】:2012-07-13 09:35:39
【问题描述】:
我遇到了以下域检查功能,但我似乎无法让它工作。
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
帮助表示赞赏!
【问题讨论】:
-
从错误消息中,很明显
whois.verisign-grs.com不接受端口43上的连接。您可能必须找到另一个 whois 服务器来将您的请求传递给。 -
不只是威瑞信服务器给出了错误,他们都这样做了。是这些服务器停止免费提供这些信息了吗?
-
这是可能的。也许您可以咨询威瑞信的支持,看看他们是否有任何可通过 API 或 Web 服务进行公共访问的 whois 服务器。
-
我的服务器是否有可能阻止我进行 whois 查询?我找到了一个类似这个脚本的演示,它运行良好,但是当我将该函数添加到我自己的站点时,它超时了......
-
是的,这也是一种可能。你能在你的服务器上启动一个 shell 并尝试连接到 whois 服务器吗?
标签: php search whois domain-name