【问题标题】:Having problems with cURL and whitepages.comcURL 和 whitepages.com 有问题
【发布时间】:2012-09-25 16:43:46
【问题描述】:

我有一个从 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 等...

【问题讨论】:

  • 这需要先进行基本调试。一个如何使用 curl 获取更多详细信息的示例,您可以在此处找到:stackoverflow.com/questions/9550319/… - 基本调试意味着,您需要分享有关您的错误类型的更多信息,只是有“我收到错误”或“它不起作用” “对于良好的编程帮助来说太少了。你可以想象有数万亿台服务器,你需要学习如何处理这些问题,因为你将来也会遇到问题。
  • 我已将其发布在其他人的评论中。它是 gatorhost 的专用服务器。我认为是 linux-RedHat-9.8.2。它所说的只是“无法连接到主机”
  • 您的队友应在您的问题中添加其他详细信息,并且您应联系 whitepages.com 并寻求支持以向他们的站点发送 HTTP 请求,即使您端没有任何东西阻止连接。

标签: php curl


【解决方案1】:

这对我来说很好。

我也运行了你的代码,它似乎工作得很好。

【讨论】:

    【解决方案2】:

    开启错误报告error_reporting(E_ALL);。 可能新服务器没有启用 cURL。

    【讨论】:

      【解决方案3】:

      它可能返回错误,但由于您的服务器配置,您没有看到它。尝试将此添加到脚本的顶部

      error_reporting(E_ALL);
      ini_set("display_error", "On");
      

      【讨论】:

      • 现在这很可能是防火墙问题,您的服务器使用的是什么操作系统
      • 它是来自 gatorhost 的专用服务器。我认为是 linux-RedHat-9.8.2
      【解决方案4】:

      这是 OP 的队友。我们已经确认代码工作正常。 (我们从两台主机上进行了测试)。主机本身有一些东西阻止了对白页的访问。 cURL 已启用,我们尝试使用备用端口(即... 8080)。此外,尝试建立特定的浏览器标头和用户代理(来自以下帖子)Can servers block curl requests?

      我们建立的任何东西似乎都没有任何区别......我们也认为这是一个防火墙问题,但我们在本地检查并没有问题。我只能认为它在服务器上被阻止了。我们有一个“经销商”专用服务器,可以访问 php.ini 等...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-01
        • 2011-09-21
        • 1970-01-01
        • 2020-03-03
        • 2011-09-21
        • 2018-09-27
        • 2013-02-14
        • 1970-01-01
        相关资源
        最近更新 更多