php使用curl伪造浏览器访问操作示例


Posted in PHP onSeptember 30, 2019

本文实例讲述了php使用curl伪造浏览器访问操作。分享给大家供大家参考,具体如下:

原理

服务器主要通过User-Agent识别客户端是何种设备

User-Agent是Http协议中的一部分,属于头域的组成部分。基本格式为: 浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识 版本信息。

具体方法如下

/**
 * curl获取数据
 * @param $url
 * @return mixed
 */
function get_url($url)
{
  $ifpost = 0;
  $datafields = '';
  $cookiefile = '';
  $v = false;
  //构造随机ip
  $ip_long = array(
    array('607649792', '608174079'), //36.56.0.0-36.63.255.255
    array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255
    array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255
    array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255
    array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255
    array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255
    array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255
    array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255
    array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255
    array('-569376768', '-564133889'), //222.16.0.0-222.95.255.255
  );
  $rand_key = mt_rand(0, 9);
  $ip= long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));
//模拟http请求header头
  $header = array("Connection: Keep-Alive","Accept: text/html, application/xhtml+xml, */*", "Pragma: no-cache", "Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3","User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)",'CLIENT-IP:'.$ip,'X-FORWARDED-FOR:'.$ip);
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, $v);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  $ifpost && curl_setopt($ch, CURLOPT_POST, $ifpost);
  $ifpost && curl_setopt($ch, CURLOPT_POSTFIELDS, $datafields);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  $cookiefile && curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
  $cookiefile && curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
  curl_setopt($ch,CURLOPT_TIMEOUT,60); //允许执行的最长秒数
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  $ok = curl_exec($ch);
  curl_close($ch);
  unset($ch);
  return $ok;
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
ZF等常用php框架中存在的问题
Jan 10 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
May 26 PHP
php中全局变量global的使用演示代码
May 18 PHP
深入PHP变量存储的详解
Jun 13 PHP
PHP常用数组函数介绍
Jul 28 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
php中file_get_content 和curl以及fopen 效率分析
Sep 19 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
PHP简单实现冒泡排序的方法
Dec 26 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
Aug 07 PHP
PHP数据库操作四:mongodb用法分析
Aug 16 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
laravel-admin 在列表页添加自定义按钮的例子
Sep 30 #PHP
Laravel框架控制器的request与response用法示例
Sep 30 #PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
Sep 30 #PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 #PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 #PHP
laravel实现登录时监听事件,添加登录用户的记录方法
Sep 30 #PHP
php7下的filesize函数
Sep 30 #PHP
You might like
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
也谈 PHP 和 MYSQL
2006/10/09 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
Linux下多个Python版本安装教程
2018/08/15 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
python实现维吉尼亚算法
2019/03/20 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
浅谈TensorFlow之稀疏张量表示
2020/06/30 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
酒店管理专业学生求职信
2013/09/27 职场文书
毕业生找工作求职信
2014/08/05 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
团组织推优材料
2014/12/29 职场文书
免职通知
2015/04/23 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
小学运动会报道稿
2015/07/22 职场文书
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js