我有一个从 whitepages.com 提取信息的功能,它运行良好。我将代码移到了新服务器上,现在我只遇到了 curl 和 white pages 的问题。我还使用 curl 访问其他网站,例如 zillow.com,它运行良好。
我使用的代码是:
<?php
$ch3 = curl_init();
curl_setopt($ch3, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch3, CURLOPT_TIMEOUT, 15);
curl_setopt($ch3, CURLOPT_URL, "http://www.whitepages.com/name/john-smith/md");
curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1);
$output2 = curl_exec($ch3);
curl_close($ch3);
?>
<?=$output2;?>
我不知道这是否是 cURL 或 PHP 或服务器本身的问题。PHP 版本 5.3.17。较旧的服务器:PHP 版本 5.2.4。它似乎适用于我们拥有的所有其他服务器。我不知道 php 或 cURL 中是否有我需要打开的选项。谢谢。
编辑:这是 curl 部分中的 phpinfo
cURL support enabled
cURL Information 7.24.0
Age 3
Features
AsynchDNS No
Debug No
GSS-Negotiate No
IDN Yes
IPv6 Yes
Largefile Yes
NTLM Yes
SPNEGO No
SSL Yes
SSPI No
krb4 No
libz Yes
CharConv No
Protocols dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, smtp, smtps, telnet, tftp
Host x86_64-unknown-linux-gnu
SSL Version OpenSSL/1.0.0
ZLib Version 1.2.3
它是来自 gatorhost 的专用服务器。我认为是 linux-RedHat-9.8.2。它所说的只是“无法连接到主机”
我们已经确认代码工作正常。(我们从两台主机上进行了测试)。主机本身有一些东西阻止了对白页的访问。cURL 已启用,我们尝试使用备用端口(即... 8080)。另外,尝试建立特定的浏览器标头和用户代理(来自以下帖子) 服务器可以阻止 curl 请求吗?
我们建立的任何东西似乎都没有任何区别......我们也认为这是一个防火墙问题,但我们在这里本地检查并没有问题。我只能认为它在服务器上被阻止了。我们有一个“经销商”专用服务器,可以访问 php.ini 等...