解析浏览器的访问信息

一、UserAgentUtils
  UserAgentUtils是一个处理user-agent 字符的一个工具。可以用来实时地处理http请求和分析http请求日志文件。这里可以使用UserAgentUtils对访问用户的浏览器类型、操作系统、设备种类等进行统计分析,从而为网址的用户量的增加,做出正确的决策。项目网址为:https://github.com/HaraldWalker/user-agent-utils

示例相关相关maven依赖如下:

<dependency>
  <groupId>nl.bitwalker</groupId>
  <artifactId>UserAgentUtils</artifactId>
  <version>1.2.4</version>
</dependency>

二、示例

相关实例代码如下:

 1 package com.sunshine.test;
 2
 3 import org.junit.Test;
 4
 5 import nl.bitwalker.useragentutils.Browser;
 6 import nl.bitwalker.useragentutils.UserAgent;
 7 import nl.bitwalker.useragentutils.Version;
 8
 9 public class TestUserAgent {
10
11     /**
12      *
13      * @param userAgentStr
14      *            用户访问的userAgent 字符串
15      */
16     private static void getType(String userAgentStr) {
17         UserAgent userAgent = UserAgent.parseUserAgentString(userAgentStr);
18         Browser browser = userAgent.getBrowser();
19
20         String browserName = browser.getName();// 浏览器名称
21         String group = browser.getGroup().getName();// 浏览器大类
22         Version browserVersion = userAgent.getBrowserVersion();// 详细版本
23         String version = browserVersion.getMajorVersion();// 浏览器主版本
24         System.out.println(browserName);
25         System.out.println(group);
26         System.out.println(browserVersion);
27         System.out.println(version);
28         System.out.println(userAgent.getOperatingSystem());// 访问设备系统
29         System.out.println(userAgent.getOperatingSystem().getDeviceType());// 访问设备类型
30         System.out.println(userAgent.getOperatingSystem().getManufacturer());// 访问设备制造厂商
31
32
33         System.out.println(String.format("===============%s-%s", group, version));
34     }
35
36     @Test
37     public void test() {
38         String userAgent = "user-agent = Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0";
39         String userAgent2 = "user-agent = Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36";
40         String userAgent3 = "user-agent = Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)";
41         String userAgent4 = "user-agent = Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B440 Safari/600.1.4";
42
43         getType(userAgent);
44         getType(userAgent2);
45         getType(userAgent3);
46         getType(userAgent4);
47     }
48 }

 运行结果如下:

    

时间: 2024-07-30 16:01:48

解析浏览器的访问信息的相关文章

自己动手写web服务器一(浏览器的访问信息)

要协议一个web服务器,需要了解http协议,下面我们来看一下当浏览器请求网张的时候向web服务器发送的数据,我使用的是ubuntu 中telent展现一个下过程. 我需要一个简单的网站来演示一下,我装了一个apache.来完成成这个过程.下面为过程展示. 其实,访问一个网站就是浏览器web服务器指定端口发送信息,然后,web服务器向浏览器发送网页的内容, 1.使用telnet连接网站 2.输入请求的页面. GET  /   HTTP/1.0 或者 GET /index.html  HTTP/1

JavaWeb的学习--XML&amp;反射案例:通过解析xml,模拟浏览器路径访问servlet

1. 案例分析 通过解析xml,模拟浏览器路径访问servlet,我们希望用户访问的路径是/servlet1,将执行com.java.web.servlet01.MyServlet01程序,如果访问      的路径是/servlet2,将执行com.java.web.servlet01.MyServlet02程序. 在执行测试程序前(@before),解析xml文件,将解析的结果存放在Map集合中,map中的数据的格式为 路径=实现类. 解析xml的思路:先解析<servlet>,将结果存放

(转)CAS (4) —— CAS浏览器SSO访问顺序图详解(CAS Web Flow Diagram by Example)

CAS (4) —— CAS浏览器SSO访问顺序图详解(CAS Web Flow Diagram by Example) tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1.9.8 cas版本: cas4.1.2cas-client-3.4.1 参考来源: jasig.github.io:CAS protocol CAS (1) —— Mac下配置CAS到Tomcat(服务端) CAS (2) —— Mac下配置CAS到Tomc

微信JSAPI模式与浏览器类型安全访问

摘要: 微信浏览器是在微信安装时内置在微信中的,针对浏览器的类型我们可以设置相应的安全策略--仅允许在微信内置浏览器中打开.本文选自<微信企业号开发完全自学手册>. 1 JSAPI模式介绍 在介绍JSAPI模式之前,首先需要介绍一下微信内置浏览器.可能很多人注意到了,在打开微信"朋友圈"链接的时候会出现进度条,如图5.1所示,这实际上就是微信内置浏览器访问页面的进度.也就是说,"朋友圈"是通过微信内置的浏览器访问的手机页面,并且微信浏览器是在微信安装时内

IdentityServer4源码解析_5_查询用户信息接口

目录 IdentityServer4源码解析_1_项目结构 IdentityServer4源码解析_2_元数据接口 IdentityServer4源码解析_3_认证接口 IdentityServer4源码解析_4_令牌发放接口 IdentityServer4源码解析_5_查询用户信息接口 [IdentityServer4源码解析_6_结束会话接口] [IdentityServer4源码解析_7_查询令牌信息接口] [IdentityServer4源码解析_8_撤销令牌接口] 协议简析 UserI

《深入理解计算机系统》3.3数据格式,3.4访问信息

数据格式 字 Intel使用"字"(word)来表示16位数据类型 32位数据类型则为双字(double words) 64位数据类型则为四字(quad words) 汇编指令中有很多指令后带一个自负后缀代表操作数的大小 比如数传送指令: movb(传送字节) movw(传送字) movl(传送双字) 注意 浮点类型的后缀也是l,但是浮点数的运行有另外的寄存器,不会产生歧义 比如 movl  整数运算寄存器,整数运算寄存器 movl  浮点运算寄存器,浮点运算寄存器 访问信息 8个整数

获取各浏览器内核版本信息

获取浏览器的名字加版本信息 function getBrowserInfo() { var agent = navigator.userAgent.toLowerCase(); var regStr_ie = /msie [\d.]+;/gi; var regStr_ff = /firefox\/[\d.]+/gi var regStr_chrome = /chrome\/[\d.]+/gi; var regStr_saf = /safari\/[\d.]+/gi; //IE if(agent.

简化浏览器地址栏访问路径

一般情况下,你的项目工程中的web.xml文件中进行了这样的配置 <welcome-file-list> <welcome-file>/index.jsp</welcome-file> </welcome-file-list> 那么在浏览器地址栏输入http://localhost:8080/你的工程名 就是默认访问的工程的WebRoot目录下的index.jsp文件 我想输入http://localhost:8080/ 也能访问到index.jsp 除了w

通过拦截器Interceptor实现Spring MVC中Controller接口访问信息的记录

java web工程项目使用了Spring+Spring MVC+Hibernate的结构,在Controller中的方法都是用于处理前端的访问信息,Controller通过调用Service进行业务处理后给前端返回ModelAndView对象或者只返回Json格式数据.如果能够获得Http请求在后端程序中处理的相关信息,对于开发和调试时十分方便的.工程中使用了Spring MVC的Interceptor对所有Http请求及其响应进行拦截,从而获取到本次访问接口信息以及程序处理时长等信息,特意在