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 相关文章推荐
中国站长站 For Dede4.0 采集规则
May 27 PHP
PHP 开源框架22个简单简介
Aug 24 PHP
php入门学习知识点五 关于php数组的几个基本操作
Jul 14 PHP
php实现的Cookies操作类实例
Sep 24 PHP
20个2014年最优秀的PHP框架回顾
Oct 22 PHP
PHP遍历XML文档所有节点的方法
Mar 12 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
优化WordPress中文章与评论的时间显示
Jan 12 PHP
PHP转换文本框内容为HTML格式的方法
Jul 20 PHP
php 微信开发获取用户信息如何实现
Dec 13 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
PHP自定义错误处理的方法分析
Dec 19 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文件中bom的PHP代码
2012/03/13 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
PHP getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
2014/04/10 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
jQuery 选择器详解
2015/01/19 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
简单实现js浮动框
2016/12/13 Javascript
koa-router源码学习小结
2018/09/07 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
python中的多重继承实例讲解
2014/09/28 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
基于python的列表list和集合set操作
2019/11/24 Python
详解python tcp编程
2020/08/24 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
办理暂住证介绍信
2014/01/11 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
玲玲的画教学反思
2014/02/04 职场文书
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
村班子对照检查材料
2014/08/18 职场文书
群众路线教育实践活动对照检查材料
2014/09/22 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
Python快速实现一键抠图功能的全过程
2021/06/29 Python