簡體   English   中英

cURL:“無法連接到主機”

[英]cURL : “Couldn't connect to host”

我過去已經解決了這個問題,但我絕對不記得是怎么回事。

所以,我正在嘗試使用代理將網頁提取到我的服務器。

這是代碼:

function curlFile($url,$proxy_ip,$proxy_port,$loginpassw)
{

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port);
    curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
    curl_setopt($ch, CURLOPT_PROXY, $proxy_ip);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_VERBOSE, false);
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, $loginpassw);
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);


    $data = curl_exec($ch);

    if(curl_errno($ch)){
             echo 'Curl error: ' . curl_error($ch);
    }

    print_r(curl_getinfo($ch));
    print_r(curl_error($ch));

    print_r($data);

    curl_close($ch);

    return $data;
}

目前輸出的全部是:

卷曲錯誤:無法連接到hostArray([url] => http://www.drkameleon.com [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.007872 [namelookup_time] => 0.007537 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] = > 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0)無法連接到主機

那么,有什么想法嗎? 怎么可能出錯?

您的網絡服務器無法連接到代理

  • Web服務器上的本地安全設置 - 您沒有說明運行的操作系統是什么
  • Web服務器上的路由問題
  • 代理上的防火牆策略

代理需要身份驗證嗎? (您應該從代理獲得4xx響應 - 如果您已獲得CLI訪問權限,請嘗試從命令行運行curl)。

代理在查找時獲得了NXDomain,或者沒有獲得您期望的IP地址。

在在線PHP平台上執行相同的腳本並查看結果。 可能有幾個問題

  1. SSL驗證問題。 如果您向HTTPS網站發出請求,並且您的curl庫未配置為信任證書,則會出現問題。 您可以下載其他網站的CA證書,並將curl庫指向該方向。

  2. 如果您在大學/辦公室網絡上,則可能是防火牆問題。

  3. 端口配置不正確。

在線運行相同的腳本,查看[ssl_verify_result]的結果。 另請參閱它所指向的HTTP代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM