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&amp;java(三)
Oct 09 PHP
功能齐全的PHP发送邮件类代码附详细说明
Jul 10 PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
Nov 01 PHP
使用PHP遍历文件夹与子目录的函数代码
Sep 26 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
PHP创建对象的六种方式实例总结
Jun 27 PHP
php利用array_search与array_column实现二维数组查找
Jul 08 PHP
Laravel 错误提示本地化的实现
Oct 22 PHP
PHP字符串与数组处理函数用法小结
Jan 07 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版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
在Python中操作文件之seek()方法的使用教程
2015/05/24 Python
python 读写、创建 文件的方法(必看)
2016/09/12 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
HTML5 Canvas的性能提高技巧经验分享
2013/07/02 HTML / CSS
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
高中生职业规划范文
2014/03/09 职场文书
化工操作工岗位职责
2014/04/29 职场文书
助残日活动总结
2014/08/27 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
征求意见函
2015/06/05 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python