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 相关文章推荐
从零开始 教你如何搭建Discuz!4.1论坛
Jul 07 PHP
我用php+mysql写的留言本
Oct 09 PHP
PHP读取目录下所有文件的代码
Jan 07 PHP
php pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 PHP
typecho插件编写教程(三):保存配置
May 28 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
thinkPHP实现MemCache分布式缓存功能
Mar 23 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
Sep 02 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
Dec 07 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 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
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
保护环境的建议书
2014/03/12 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
搞笑婚前保证书
2015/02/28 职场文书
工程项目合作意向书
2015/05/08 职场文书
邹越演讲观后感
2015/06/15 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python
python 镜像环境搭建总结
2022/09/23 Python