ホームページ >バックエンド開発 >PHPチュートリアル >phpカールはプロキシを使用してアクセスできますが、ローカルサーバーにはアクセスできません。
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 ); //设置header curl_setopt ( $ch, CURLOPT_HTTPHEADER, $header ); } curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt ( $ch, CURLOPT_POSTFIELDS, $request ); // $request=json if ($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; }}ローカル プロキシがありません
この方法をテストしましたが、まだ空白が表示されます。
タイムアウトではありませんが、実行結果は空白で何もありません
これは明らかに保護された IP です
この IP は確かにアクセスできません。 ping
//数据发送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 ); //设置header curl_setopt ( $ch, CURLOPT_HTTPHEADER, $header ); } curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt ( $ch, CURLOPT_POSTFIELDS, $request ); // $request=json if ($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はプロキシ経由で使用する場合は有効で、対象アドレスを取得できます。
Baidu にアクセスしています。その IP はプロキシによって使用されています。
ローカルカールは有効ですか?