php curl 用代理訪問,伺服器可以,本地不行

來源:互聯網
上載者:User
測試用 curl代理訪問,在伺服器測試可行,本地卻顯示空白的,請教下是什麼情況,代理ip是網上找的,可用

function curl_string ($url,$user_agent,$proxy){       $ch = curl_init();       curl_setopt ($ch, CURLOPT_PROXY, $proxy);       curl_setopt ($ch, CURLOPT_URL, $url);       curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);       curl_setopt ($ch, CURLOPT_COOKIEJAR, "c:\cookie.txt");       curl_setopt ($ch, CURLOPT_HEADER, 1);       curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);       curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);       curl_setopt ($ch, CURLOPT_TIMEOUT, 120);       $result = curl_exec ($ch);       curl_close($ch);       return $result;}$url = "http://www.baidu.com";$user_agent = "Mozilla/4.0";$proxy = "http://111.13.109.53:80";$string = curl_string($url,$user_agent,$proxy);echo $string; 


回複討論(解決方案)

//資料發送function curl_post($api_server, $request, $proxy = 0,$header=array()) {$ch = curl_init ( $api_server );curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'POST' );if(is_array($header) && !empty($header)){curl_setopt ( $ch, CURLOPT_HEADER, 1 ); //設定headercurl_setopt ( $ch, CURLOPT_HTTPHEADER, $header );}curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );curl_setopt ( $ch, CURLOPT_POSTFIELDS, $request ); // $request=jsonif ($proxy) {//通過代理請求$API_CURLOPT_PROXY = "代理IP";curl_setopt ( $ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP );curl_setopt ( $ch, CURLOPT_PROXY, $API_CURLOPT_PROXY );}$result = curl_exec ( $ch );$curl_errno = curl_errno ( $ch );$curl_code = curl_getinfo ( $ch, CURLINFO_HTTP_CODE ); // 擷取http傳回值curl_close ( $ch );if ($curl_code == 200) {return $result;} else {return FALSE;}}

本地又沒代理

錯誤時逾時嗎?我也發生過這類問題,是逾時,如果你也是這錯誤,我倒是可以提點建議

//資料發送function curl_post($api_server, $request, $proxy = 0,$header=array()) {$ch = curl_init ( $api_server );curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'POST' );if(is_array($header) && !empty($header)){curl_setopt ( $ch, CURLOPT_HEADER, 1 ); //設定headercurl_setopt ( $ch, CURLOPT_HTTPHEADER, $header );}curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );curl_setopt ( $ch, CURLOPT_POSTFIELDS, $request ); // $request=jsonif ($proxy) {//通過代理請求$API_CURLOPT_PROXY = "代理IP";curl_setopt ( $ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP );curl_setopt ( $ch, CURLOPT_PROXY, $API_CURLOPT_PROXY );}$result = curl_exec ( $ch );$curl_errno = curl_errno ( $ch );$curl_code = curl_getinfo ( $ch, CURLINFO_HTTP_CODE ); // 擷取http傳回值curl_close ( $ch );if ($curl_code == 200) {return $result;} else {return FALSE;}}

本地又沒代理



這個方法測試了,還是顯示空白

錯誤時逾時嗎?我也發生過這類問題,是逾時,如果你也是這錯誤,我倒是可以提點建議



不是逾時,是執行結果為空白,啥都沒

111.13.109.53 北京市 移動
ping 不通
訪問 http://111.13.109.53:80 報不存在

顯然是一個受保護的 ip

訪問受保護的ip肯定不行的,這個ip確實ping不通

localhost:devbox lijunpeng$ ping 111.13.109.53 PING 111.13.109.53 (111.13.109.53): 56 data bytesRequest timeout for icmp_seq 0Request timeout for icmp_seq 1Request timeout for icmp_seq 2Request timeout for icmp_seq 3

111.13.109.53 北京市 移動
ping 不通
訪問 http://111.13.109.53:80 報不存在

顯然是一個受保護的 ip



這個是代理用的ip,在伺服器上使用是有效,可以獲得目標地址的內容,在本機使用顯示空白頁,擷取不到

訪問受保護的ip肯定不行的,這個ip確實ping不通



訪問的是百度,那個ip是代理用的ip.

代理ip都ping不通你怎麼可能根據代理來訪問百度呢?

這個ip要不就是你伺服器的一個內網ip

本地curl開啟了嗎?

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.