php代码检查代理ip的有效性
本文实例为大家分享了检查代理ip有效性php代码,稳定性,如错误率和查询用时
/** +----------------------------------------------------------------------------- *检查代理ip信息有效性 +----------------------------------------------------------------------------- *@paramstring$proxy_ip[117.95.100.126:8998] *@paramint$times执行检查次数 *@returnarray *@authorelinx<654753115@qq.com>2016-07-29 +----------------------------------------------------------------------------- */ functioncheck_proxy_ip_info($proxy_ip=false,$times=10){ $header=array( //"GET/HTTP/1.1", //"HOST:www.baidu.com", "accept:application/json", "accept-encoding:gzip,deflate", "accept-language:en-US,en;q=0.8", "content-type:application/json", "user-agent:Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.106Safari/537.36", ); $url='http://www.baidu.com/'; $result['succeed_times']=0;//成功次数 $result['defeat_times']=0;//失败次数 $result['total_spen']=0;//总用时 for($i=0;$i<$times;$i++){ $s=microtime(); $curl=curl_init(); curl_setopt($curl,CURLOPT_URL,$url);//设置传输的url curl_setopt($curl,CURLOPT_HTTPHEADER,$header);//发送http报头 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); curl_setopt($curl,CURLOPT_ENCODING,'gzip,deflate');//解码压缩文件 curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);//不验证证SSL书 curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);//不验证SSL证书 if(@$proxy_ip!=false){//使用代理ip curl_setopt($curl,CURLOPT_HTTPHEADER,array( 'Client_Ip:'.mt_rand(0,255).'.'.mt_rand(0,255).'.'.mt_rand(0,255).'.'.mt_rand(0,255), )); curl_setopt($curl,CURLOPT_HTTPHEADER,array( 'X-Forwarded-For:'.mt_rand(0,255).'.'.mt_rand(0,255).'.'.mt_rand(0,255).'.'.mt_rand(0,255), )); curl_setopt($curl,CURLOPT_PROXYTYPE,CURLPROXY_HTTP); curl_setopt($curl,CURLOPT_PROXY,$proxy_ip); } curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); curl_setopt($curl,CURLOPT_TIMEOUT,30);//设置超时限制防止死循环 //$response_header=curl_getinfo($curl);//获取返回response报头 $content=curl_exec($curl); if(strstr($content,'百度一下,你就知道')){ $result['list'][$i]['status']=1; $result['succeed_times']+=1; }else{ $result['list'][$i]['status']=0; $result['defeat_times']+=1; } $e=microtime(); $result['total_spen']+=abs($e-$s); $result['list'][$i]['spen']=abs($e-$s); $result['list'][$i]['content']=json_encode($content,true); //$result['list'][$i]['response_header']=$response_header; } $result['precent']=(number_format($result['succeed_times']/$times,4)*100).'%'; $result['average_spen']=number_format($result['total_spen']/$times,4); return$result; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。