php代码检查代理ip的有效性


Posted in PHP onAugust 19, 2016

本文实例为大家分享了检查代理ip有效性php代码,稳定性,如错误率和查询用时

/**
 +-----------------------------------------------------------------------------
 * 检查代理ip信息有效性
 +-----------------------------------------------------------------------------
 * @param string $proxy_ip [117.95.100.126:8998]
 * @param int $times 执行检查次数
 * @return array
 * @author elinx <654753115@qq.com> 2016-07-29
 +-----------------------------------------------------------------------------
 */
function check_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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
提升PHP执行速度全攻略(上)
Oct 09 PHP
PHP实现多服务器session共享之NFS共享的方法
Mar 16 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
Oct 29 PHP
redis 队列操作的例子(php)
Apr 12 PHP
php图片的裁剪与缩放生成符合需求的缩略图
Jan 11 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
php常用字符串处理函数实例分析
Nov 22 PHP
thinkPHP中create方法与令牌验证实例浅析
Dec 08 PHP
PHP读取PPT文件的方法
Dec 10 PHP
php求数组全排列,元素所有组合的方法
May 05 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
Apr 03 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
Jun 05 PHP
PHP中new static()与new self()的比较
Aug 19 #PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 #PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 #PHP
Thinkphp框架开发移动端接口(2)
Aug 18 #PHP
Thinkphp框架开发移动端接口(1)
Aug 18 #PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 #PHP
PHP文件下载实例代码浅析
Aug 17 #PHP
You might like
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
[00:11]战神迅矛
2019/03/06 DOTA
Python标准库defaultdict模块使用示例
2015/04/28 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
详解python中asyncio模块
2018/03/03 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
Python continue语句实例用法
2020/02/06 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
编写strcpy函数
2014/06/24 面试题
父亲八十大寿答谢词
2014/01/23 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
走群众路线剖析材料
2014/10/09 职场文书
房屋所有权证明
2014/10/20 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python
Nginx反向代理、重定向
2022/04/13 Servers