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 相关文章推荐
php预定义常量
Dec 25 PHP
mysql 性能的检查和优化方法
Jun 21 PHP
php垃圾代码优化操作代码
Aug 05 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
eaglephp使用微信api接口开发微信框架
Jan 09 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
Jan 05 PHP
Windows2003下php5.4安装配置教程(IIS)
Jun 30 PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
PHP论坛实现积分系统的思路代码详解
Jun 01 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
PHP与SQL注入攻击[二]
2007/04/17 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
JS库之Highlight.js的用法详解
2017/09/13 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
详解关于Vuex的action传入多个参数的问题
2019/02/22 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
Python中常见的数据类型小结
2015/08/29 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
.NET面试题:什么是反射
2016/09/30 面试题
夜大自我鉴定
2013/10/31 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
优秀教师事迹材料
2014/12/15 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
武当山导游词
2015/02/03 职场文书
法定代表人免职证明
2015/06/24 职场文书
物业保洁员管理制度
2015/08/05 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书