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程序的php代码
Apr 07 PHP
php面向对象全攻略 (十四) php5接口技术
Sep 30 PHP
php 文件上传类代码
Aug 06 PHP
奇怪的PHP引用效率问题分析
Mar 23 PHP
PHP面向对象——访问修饰符介绍
Nov 08 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 PHP
php文件上传你必须知道的几点
Oct 20 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
PHP实现简单计算器小程序
Aug 28 PHP
php快速导入大量数据的实例方法
Sep 23 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
MVC模式的PHP实现
2006/10/09 PHP
mysql中存储过程、函数的一些问题
2007/02/14 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
JQuery球队选择实例
2015/05/18 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
浅谈Python使用Bottle来提供一个简单的web服务
2017/12/27 Python
Python2中文处理纪要的实现方法
2018/03/10 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
Python实战购物车项目的实现参考
2019/02/20 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
长曲棍球装备:Lacrosse Monkey
2020/12/02 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
什么是索引指示器
2012/08/20 面试题
会计电算化大学生职业规划书
2014/02/05 职场文书
物流毕业生个人的自我评价
2014/02/13 职场文书
工会工作先进事迹
2014/08/18 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
部队2015年终工作总结
2015/04/02 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
JavaScript架构localStorage特殊场景下二次封装操作
2022/06/21 Javascript