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类
Apr 09 PHP
php array的学习笔记
May 10 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
PHP代码优化之成员变量获取速度对比
Feb 28 PHP
Yii 快速,安全,专业的PHP框架
Sep 03 PHP
php导入excel文件到mysql数据库的方法
Jan 14 PHP
PHP实现上传文件并存进数据库的方法
Jul 16 PHP
PHP精确计算功能示例
Nov 29 PHP
PHP中include()与require()的区别说明
Feb 14 PHP
php实现头像上传预览功能
Apr 27 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
Nov 20 PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 22 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
ucenter通信原理分析
2015/01/09 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
CI框架整合widget(页面格局)的方法
2016/05/17 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
php-msf源码详解
2017/12/25 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
php将字符串转换为数组实例讲解
2020/05/05 PHP
PHP实现计算器小功能
2020/08/28 PHP
javascript 动态添加表格行
2006/06/22 Javascript
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
屏蔽IE弹出"您查看的网页正在试图关闭窗口,是否关闭此窗口"的方法
2013/12/31 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
python目录与文件名操作例子
2016/08/28 Python
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
python @property的用法及含义全面解析
2018/02/01 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
2020/01/10 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
酒店个人培训自我鉴定
2013/12/11 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
大学生学年自我鉴定
2014/02/10 职场文书
标准化管理实施方案
2014/02/25 职场文书
建房协议书
2014/04/11 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
2016继续教育研修日志
2015/11/13 职场文书
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
mysql insert 存在即不插入语法说明
2022/03/25 MySQL