本文实例讲述了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使用curl伪造浏览器访问操作示例相关推荐

  1. JS window对象 Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本。...

    Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本. 对象属性: 查看浏览器的名称和版本,代码如下: <script type=" ...

  2. 如何屏蔽PHP浏览器头信息X-Powered-By

    将 php.ini 中,将 "expose_php = On" 改为 "expose_php = Off"

  3. firefox伪造请求头信息,模拟手机访问网站

    大概有两年没有去过chinaz的论坛了,昨天上去逛了逛.正好看到一个朋友在问百度是如何判断是不是手机登录的.有几个热心朋友回答的是js,我把百度首页的js看了下,没有找到一丝的手持设备判断的信息,我也 ...

  4. headerIP php_PHP使用curl伪造IP地址和header信息

    curl虽然功能强大,但是只能伪造$_SERVER["HTTP_X_FORWARDED_FOR"],对于大多数IP地址检测程序来说,$_SERVER["REMOTE_AD ...

  5. HttpServletRequest请求中获取操作系统,浏览器及浏览器版本信息

    最近在开发中需要从request中获取操作系统,浏览器及浏览器版本信息.我们都知道通过request.getHeader("User-Agent")可以获取到.但是这样获取到的信息 ...

  6. 使用 user agent 判断微信内置浏览器版本信息

    2019独角兽企业重金招聘Python工程师标准>>> 最近开发wap,仅用在微信浏览器上,部分功能需要判断微信浏览器 版本信息.其他功能类推:(注:获取到的userAgent就是纯 ...

  7. 查看浏览器响应头信息数据

    获取浏览器响应头部信息 以Microsoft Edge和Google Chrome举例 一.Microsoft Edge浏览器(点击查看) 二.Google Chrome浏览器(点击查看) 以Micr ...

  8. js网页判断移动终端浏览器版本信息是安卓还是苹果ios,判断在微信浏览器跳转不同页面,生成二维码...

    一个二维码,扫描进入网页,自动识别下载苹果和安卓客户端,判断网页如下,(只有苹果的微信不能自动跳转)所以加个微信判断. <!DOCTYPE html> <html><he ...

  9. 微信及企业微信内嵌浏览器内核信息及H5跑分数据-企业微信开发

    加我微信li570467731,拉你进二百多人企业微信开发同行群(文末有二维码). 企业微信开发三部曲: <企业微信应用开发概述篇(免费)>已完结: <企业微信开发第三方应用开发篇& ...

最新文章

  1. .net项目文档生成工具使用
  2. 用python爬虫的基本步骤-Python爬虫入门:爬虫基础了解
  3. shell下输出字体颜色
  4. batch_size 和 fetch_size作用
  5. Acwing第 32 场周赛【完结】
  6. 网页性能优化04-函数节流
  7. 7_CentOS下安装和卸载AdobeReader
  8. js关闭setInterval及终止ajax请求
  9. 【技巧】搜狗输入法特殊技巧
  10. (17)Node.js第三方模块
  11. C/C++排序算法(6)堆排序
  12. 怎样从Mysql官网下载linux版本的mysql安装包
  13. Linux内核分析学习心得
  14. CC2530无线点灯
  15. lzg_ad:在CF卡上实现EWF功能
  16. Knoll Light Factory 3.2 for mac完整汉化版|灯光工厂 for mac中文版
  17. TM2008 preview4 / QQ2009 preview 聊天记录保存位置修改
  18. eda技术试卷_EDA技术试题库
  19. Corel VideoStudio X7 (64bit)安装
  20. 管理计算机找不到应用程序,Win7计算机管理提示找不到文件或没有关联的程序问题解决方法...

热门文章

  1. spark-dataframe与rdd的区别
  2. scala集合基本介绍
  3. discard python_Python学习第三天
  4. LeetCode81. 搜索旋转排序数组 II(二分查找)
  5. Keras——Keras简介、安装及backend
  6. tf.transpose()函数(转)
  7. javascript 的module 模块化
  8. Jquery.ajax发送参数调用.Net Mvc子方法返回一个子页面嵌入当前页
  9. 夺命雷公狗—angularjs—15—内置封装好的计时器$interval和$timeout
  10. 排序算法之 Inplace Merge Sort