大概有两年没有去过chinaz的论坛了,昨天上去逛了逛。正好看到一个朋友在问百度是如何判断是不是手机登录的。有几个热心朋友回答的是js,我把百度首页的js看了下,没有找到一丝的手持设备判断的信息,我也就回答了两句,这里的判断应该属于程序部分的处理,不属于前端的范畴,是靠判断请求头信息(HTTP_USER_AGENT)进行判断的。不知道这位朋友能不能明白。

为了验证这个结论,这里我用firefox伪造请求头信息(主要是HTTP_USER_AGENT部分),来进行模拟手机访问百度网站。具体操作流程看下面。


如何用firefox伪造user agent来模拟手机访问网站

  1. 首先需要安装三个Firefox插件:wmlbrowser、XHTML Mobile Profile、User Agent Switcher;(我称它们为“伪娘三贱客”)

    先来一睹“伪娘三贱客”的尊容

  2. 安装好后需要设置 User Agent Switcher ,点击菜单 工具 → Default User Agent → User Agent Switcher → Options → New→New User Agent... ,Description是你给它的一个称呼,比如小三,凹凸曼等等。关键的部分是User Agent里面的东西(这里是请求头主要的信息,程序会根据这个请求头进行判断你是否是手持设备),这里就需要把我们想要模拟的手持设备的信息填入了。


  3. 添加好后一路确定,回到浏览器界面。工具 →default user agent  →选择你自己添加的那个 →在浏览器地址输入你想要访问的地址即可。
    十分大方这里你会看到几个选项,Default User Agent (浏览器默认的信息),Internet Explorer (可以模拟ie6,7,8的头信息),Search Robots (模拟谷歌,雅虎,msn的蜘蛛),iphone 3.0 (默认存在的一个),图片中的小三是我自己添加的一个(伪造Android的头信息)
  4. 下面列出几个比较常见手机的User Agent:(如果想要查询更多的手机user agent 信息的话,去看这里,还有这里)
    iPhone3:
    Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16
    Android:
    Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
    诺基亚N95:
    Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95/30.0.015; Profile MIDP-2.0 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413
    诺基亚N97:
    Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124

firefox伪造头信息,访问网站的效果

ok,当上面的几步你都熟悉了的话,就可以输入你想要造访的网站了。下面看我用我的“小三”拜访百度首页的情况(小三伪造的安卓的头)

Now,看到了吧。百度首页变了吧。而且智能的判断出了这个采用安卓系统访问!你可以换成iphone试试,框中的部分是不同的!

这里你也许会发现用浏览器访问的百度页面好大啊,其实这里是它页面css的问题,为了实现自适应屏幕宽度。如果想要得到好的浏览效果的话,可以参考如何在电脑上模拟手机登陆网站(Opera Mobile Emulator)


查看firefox发送的头信息,进一步验证我的结论

我们用firebug查看一下请求头信息User-Agent的内容,发现就是我修改的安卓的user agent。而百度首页返回了不同的页面,ok结论成立。百度是通过服务端进行手持设备的判断,不过怎样判断的,代码是什么,这里我就不甚了了了。

转载请注明:牛魔王的世界观 » firefox伪造请求头信息,模拟手机访问网站

firefox伪造请求头信息,模拟手机访问网站相关推荐

  1. Firefox伪造请求头

    原文地址:http://justcoding.iteye.com/blog/2086233 Firefox黑客插件:http://blog.csdn.NET/stilling2006/article/ ...

  2. chrom浏览器模拟手机访问

    原文出处:http://www.jb51.net/softjc/174861.html 以前我们介绍过如何通过修改chrom浏览器运行参数的方法来模拟手机访问网站,但是在Chrome 32和33版本以 ...

  3. 如何模拟手机访问浏览器

    以前我们介绍过如何通过修改chrom浏览器运行参数的方法来模拟手机访问网站,但是在Chrome 32和33版本以后增加了更加便捷的方法,在开发者工具中只需要设置一下就能方便的模拟各种手机型号的访问效果 ...

  4. Python爬虫入门5:模拟浏览器访问网站

    ☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.引言 在前面两节中分别介绍了使用Google浏览器和IE浏览器怎么获取网站访问的htt ...

  5. 爬虫实战学习笔记_2 网络请求urllib模块+设置请求头+Cookie+模拟登陆

    1 urllib模块 1.1 urllib模块简介 Python3中将urib与urllib2模块的功能组合,并且命名为urllib.Python3中的urllib模块中包含多个功能的子模块,具体内容 ...

  6. php 设置http 请求头信息,php设置http头

    朋友忽然提了个问题,说自己模拟请求发送的时候和在浏览器中直接访问返回的字符串不一样,我猜应该是http头的问题,在浏览器中复制出来请求头信息,模拟和浏览器请求头一样的信息发送过去,问题解决. $hea ...

  7. Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之14.Servlet请求头信息

    –典型的请求头信息 –读取HTTP请求头 –使用表格显示所有请求头信息 –理解各种请求头的含义 –区分不同的浏览器类型 ##############Michael分割线################ ...

  8. 通过severlet获取请求头信息

    为什么80%的码农都做不了架构师?>>>    Accept-Charset:浏览器可接受的字符集. Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip. ...

  9. openresty获取nginx请求头信息

    vi test.lua:在nginx.conf配置文件中已经指定了lua脚本了 获取到请求头信息可以帮助我们做什么呢? ①比如对同一请求url,实际上也可以认定为是同一请求用户,可以限定其单位时间内的 ...

最新文章

  1. Jenkins 在 Kubernetes 上的实践
  2. js date 加一天_开发效率创新高,只因收下了这波 JS 操作
  3. 数学之美笔记(二十)
  4. 5 篇 AAAI 2018 论文看「应答生成」
  5. Bug接口地址找不到
  6. easyui combobox默认选中项
  7. 鸡肋还是革新——Blazor进WinForm
  8. BZOJ1497: [NOI2006]最大获利
  9. java多线程总结一:线程的两种创建方式及比较
  10. mysql查询前一年的第一天_MySQL中查询某一天, 某一月, 某一年的数据代码详解
  11. 用Excel公式,批量生成工作时间段时间点(打酱油专用)
  12. np.random用法
  13. 自动关机win10_如何设置电脑自动关机
  14. 科技人才开发效率的空间杜宾模型分析
  15. 微软Project项目管理软件简介与安装配置
  16. 【信息安全案例】——网络信息面临的安全威胁(学习笔记)
  17. 万有引力品牌战略全新升级,正式更名库奈光年
  18. 准备2021年全国大学生数学建模竞赛 固赛助力
  19. 关键基础设施保护:四大免遭网络攻击的秘诀
  20. 【面试简历】软件测试,没有项目经历,简历怎么写?

热门文章

  1. 能量项链(NOIP-2006 提高组)
  2. linuxPci驱动获取指定设备bus、device以及devfn数据方式
  3. torch.bmm() 与 torch.matmul()==>张量的相乘运算
  4. copyToLocalFile报出空异常
  5. [UE4] 动画蓝图的 Beginplay 事件不激活的解决办法:换用 Initialize 事件
  6. mysql cleaned up_MySQL数据库无法启动的简单排错
  7. phpcmsV9留言板 - 提交后提示页UI自定义效果
  8. 去水印+外卖cps小程序源码+视频搭建教程
  9. 达梦数据库修改字段长度_解决达梦数据库新增大字段报错问题
  10. 软著文档鉴别材料_软著申请被驳回补正材料期限是多久?逾期未补正申请被撤回怎么办?...