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 相关文章推荐
用libtemplate实现静态网页生成
Oct 09 PHP
推荐个功能齐全的发送PHP邮件类
Jan 03 PHP
PHP session常见问题集锦及解决办法总结
Mar 18 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
phpize的深入理解
Jun 03 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
浅析php原型模式
Nov 25 PHP
分享常见的几种页面静态化的方法
Jan 08 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
php文件上传 你真的掌握了吗
Nov 28 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
PHP的PDO连接讲解
Jan 24 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
构建简单的Webmail系统
2006/10/09 PHP
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
python实现删除文件与目录的方法
2014/11/10 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Python温度转换实例分析
2018/01/17 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
python中time、datetime模块的使用
2020/12/14 Python
以下的初始化有什么区别
2013/12/16 面试题
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
国贸专业的职业规划范文
2014/01/23 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
关爱女孩行动实施方案
2014/03/13 职场文书
业务内勤岗位职责
2014/04/30 职场文书
县级文明单位申报材料
2014/05/23 职场文书
社会实践活动总结范文
2014/07/03 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
Go语言grpc和protobuf
2022/04/13 Golang
Golang 实现WebSockets
2022/04/24 Golang
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js