2012-04-27 84 views
0

当我检查与的fsockopen它总是提供了一个结果由Matchi.com提供回到域的avability,但做同样的卷曲周围的查询的75%时失败。 curl_errno然后传递错误代码56(CURLE_RECV_ERROR)。 当我尝试使用whois.crsnic.net检查.com域时,cURL每次都能正常工作。只有whois.denic.de制造麻烦。PHP - 与卷曲DENIC的whois查询不能很好地工作

下面的代码:

$domain = "google.de"; 
$whois_server = "whois.denic.de"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $whois_server.":43"); // Whois Server 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $domain."\r\n"); // Query 
$whois = curl_exec ($ch); 

echo "RESULT: ".$whois; 
echo "<br/>"; 
echo curl_errno ($ch); 
echo "<br/>"; 

这里的的fsockopen查询:

fsockopen($whois_server,43, $errno, $error, 5); 

有没有人的想法可能是错了吗?谢谢!

+0

DENIC已建立一定的抗僵尸的过滤器。所以为了处理很多请求,你必须使用API​​。 – 2012-04-27 17:51:17

+0

不要使用HTTP库做了'whois'查询。你只需要打开一个TCP套接字上的端口43 – 2018-01-04 14:53:47

回答

0

你在linux或windows?如果在Linux只是执行:

system('whois google.de'); 
+0

这是给最糟糕的建议。为了运行whois客户端,不要从程序中逃脱到shell。你必须在PHP特定的库做的whois查询或底部的它只是打开一个TCP套接字到端口43。 – 2018-01-04 14:54:30

3

whois.denic.de需要-T dn您的请求之前,预先考虑。

例如为:

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "-T dn $domain\r\n"); // Query