PHP

检查代理ip的有效性@param string $proxy_ip [117.95.100.126:8998]@param int $times 执行检查次数

检查代理ip的有效性

作者:何兴林 发布时间: 2017-05-22 阅读:


/**
 +-----------------------------------------------------------------------------
 * 检查代理ip信息有效性
 +-----------------------------------------------------------------------------
 * @param string $proxy_ip [117.95.100.126:8998]
 * @param int $times 执行检查次数
 * @return array
 * @author elinx <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 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/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;
}

文章地址:http://blog.yunzhancms.com/index.php?s=/Article/detail/id/174 欢迎转载,转载时请注明出处

分享到: