"无法打开流:连接超时"即使远程站点已启动并正在运行

时间:2017-01-09 08:44:40

标签: php simple-html-dom connection-timeout

我正在测试PHP脚本以使用Simple HTML DOM Parser库来抓取远程站点。用来工作正常的代码;然而,它今天突然停止了。

<?php

require_once 'backend/connector.php';
require_once 'table_access/simplehtmldom_1_5/simple_html_dom.php';
ini_set("display_errors", 1);
error_reporting(E_ALL);
echo file_get_html("http://www.google.com");

?>

它给出的错误是:

  

警告:   的file_get_contents(http://www.google.com):   无法打开流:连接超时   /home/peppyoil/public_html/sandboxassets/engines/table_access/simplehtmldom_1_5/simple_html_dom.php   第75行

我不明白为什么它会反复超时,尽管远程站点在通过浏览器访问时非常可用。我理解它说连接被拒绝或类似的东西,但什么可能解释超时?

我尝试过使用cURL:

<?php

$ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, 'http://www.google.com');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_PROXY, $proxy); // $proxy is ip of proxy server
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
 curl_setopt($ch, CURLOPT_TIMEOUT, 10);
 $httpCode = curl_getinfo($ch , CURLINFO_HTTP_CODE); // this results 0 every time
 $response = curl_exec($ch);
 if ($response === false) $response = curl_error($ch);
 echo stripslashes($response);
 curl_close($ch);

 ?>

这次没有工作,而是投掷了以下错误:

  

在10001毫秒后连接出来

上面给出的测试脚本位于http://www.peppyburro.com/sandboxassets/engines/test1.php

更新2 :刚刚检查了我的端口80,发现了这个:

  

您帐户的出站端口80,443,587和465是BLOCKED Reason   对于端口块:在我们的常规扫描期间,我们发现了恶意攻击   您帐户中可能感染恶意软件的文件。

这可能与超时有关吗?

1 个答案:

答案 0 :(得分:1)

  

您帐户的出站端口80,443,587和465已阻止端口阻止原因:在我们的常规扫描期间,我们发现您帐户中可能感染了恶意软件的恶意文件。

上面已经说明,您的托管服务提供商已将您网站的内容视为恶意内容。

这是因为您尝试实现的内容类似于代理服务器,并且属于URL重写站点部分。因此,您无法托管该脚本,因为它可用于直接访问您所在区域中被阻止但未在托管服务提供商区域内阻止的内容。

希望这有帮助。