java获取useragent_Java获取访问者的userAgent,系统和浏览器版本
最近做项目中,我碰到取客户端浏览器和操作系统信息的问题,网上找了很久,大多都是在页面中嵌入JS实现的,无法满足我的要求。所以,就自己写了个方法。我是根据每个浏览器User-Agent的特征,来判断的。
通过request获取userAgentString userAgent = request.getHeader("User-Agent");
创建一个UserAgentUtil
将userAgent作为参数传入UserAgentUtil类中public class UserAgentUtil {
public static Visit getUserAgent(String userAgent) {
if(userAgent==""||userAgent==null){
userAgent="";
}
if (userAgent.contains("Windows")) {
if (userAgent.contains("Windows NT 10.0")) {
return judgeBrowser(userAgent, "Windows 10");
} else if (userAgent.contains("Windows NT 6.2")) {
return judgeBrowser(userAgent, "Windows 8");
} else if (userAgent.contains("Windows NT 6.1")) {
return judgeBrowser(userAgent, "Windows 7" );
} else if (userAgent.contains("Windows NT 6.0")) {
return judgeBrowser(userAgent, "Windows Vista");
} else if (userAgent.contains("Windows NT 5.2")) {
return judgeBrowser(userAgent, "Windows XP");
} else if (userAgent.contains("Windows NT 5.1")) {
return judgeBrowser(userAgent, "Windows XP");
} else if (userAgent.contains("Windows NT 5.01")) {
return judgeBrowser(userAgent, "Windows 2000");
} else if (userAgent.contains("Windows NT 5.0")) {
return judgeBrowser(userAgent, "Windows 2000");
} else if (userAgent.contains("Windows NT 4.0")) {
return judgeBrowser(userAgent, "Windows NT 4.0");
} else if (userAgent.contains("Windows 98; Win 9x 4.90")) {
return judgeBrowser(userAgent, "Windows ME");
} else if (userAgent.contains("Windows 98")) {
return judgeBrowser(userAgent, "Windows 98");
} else if (userAgent.contains("Windows 95")) {
return judgeBrowser(userAgent, "Windows 95");
} else if (userAgent.contains("Windows CE")) {
return judgeBrowser(userAgent, "Windows CE");
}
} else if (userAgent.contains("Mac OS X")) {
if(userAgent.contains("iPhone")){
return judgeBrowser(userAgent, "iPhone");
}
else if (userAgent.contains("iPad")) {
return judgeBrowser(userAgent, "iPad");//判断系统
}else{
return judgeBrowser(userAgent, "Mac");//判断系统
}
}else if(userAgent.contains("Android")){
return judgeBrowser(userAgent, "Android");//判断系统
}else if(userAgent.contains("Linux")){
return judgeBrowser(userAgent, "Linux");//判断系统
}else if(userAgent.contains("FreeBSD")){
return judgeBrowser(userAgent, "FreeBSD");//判断系统
}else if(userAgent.contains("Solaris")){
return judgeBrowser(userAgent, "Solaris");//判断系统
}
return judgeBrowser(userAgent, "其他");
}
private static Visit judgeBrowser(String userAgent, String platformType) {
if (userAgent.contains("Edge")) {
return new Visit("Microsoft Edge", platformType);
}else if(userAgent.contains("QQBrowser")){
return new Visit("腾讯浏览器", platformType);
}else if (userAgent.contains("Chrome")&&userAgent.contains("Safari")) {
return new Visit("Chrome", platformType);
} else if (userAgent.contains("Firefox")) {
return new Visit("Firefox",platformType);
}else if (userAgent.contains("360")) {//Internet Explorer 6
return new Visit("360浏览器", platformType);
}else if (userAgent.contains("Opera")) {//Internet Explorer 6
return new Visit("Opera", platformType);
}else if (userAgent.contains("Safari")&&!userAgent.contains("Chrome")) {
return new Visit("Safari", platformType);
}else if (userAgent.contains("MetaSr1.0")) {//Internet Explorer 6
return new Visit("搜狗浏览器", platformType);
}else if (userAgent.contains("TencentTraveler")) {//Internet Explorer 6
return new Visit("腾讯浏览器", platformType);
}else if (userAgent.contains("UC")) {//Internet Explorer 6
return new Visit("UC浏览器", platformType);
}else if (userAgent.contains("MSIE")) {
if (userAgent.contains("MSIE 10.0")) {//Internet Explorer 10
return new Visit("IE 10", platformType);
} else if (userAgent.contains("MSIE 9.0")) {//Internet Explorer 9
return new Visit("IE 9", platformType);
} else if (userAgent.contains("MSIE 8.0")) {//Internet Explorer 8
return new Visit("IE 8", platformType);
} else if (userAgent.contains("MSIE 7.0")) {//Internet Explorer 7
return new Visit("IE 7", platformType);
} else if (userAgent.contains("MSIE 6.0")) {//Internet Explorer 6
return new Visit("IE 6", platformType);
}
} else {//暂时支持以上三个主流.其它浏览器,待续...
return new Visit("其他", platformType);
}
return new Visit("其他", platformType);
}
}
本文来自投稿,不代表访得立场,如若转载,请注明出处:http://www.found5.com//view/1232.html
java获取useragent_Java获取访问者的userAgent,系统和浏览器版本相关推荐
- js获取内网ip地址,操作系统,浏览器版本等信息
这次呢,说一下使用js获取用户电脑的ip信息,刚开始只是想获取用户ip,后来就顺带着获取了操作系统和浏览器信息. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器 ...
- js获取内网/局域网ip地址,操作系统,浏览器版本等信息
这次呢,说一下使用js获取用户电脑的ip信息,刚开始只是想获取用户ip,后来就顺带着获取了操作系统和浏览器信息. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器 ...
- Android利用Java反射获取用户手机的rom定制系统及版本,EMUI,MIUI,ColorOS,FunthouchOS等
Android利用Java反射获取用户手机的rom定制系统版本及版本号,EMUI,MIUI,ColorOS,FunthouchOS等 前言 正文 结语 前言 现在手机厂商都推出了自己的基于Androi ...
- java 获取mysql timestamp_java获取获得Timestamp类型的当前系统时间
java获取取得Timestamp类型的当前系统时间 java获取取得Timestamp类型的当前系统时间 格式:2010-11-04 16:19:42 方法1: Timestamp d = new ...
- Java基础:获取操作系统及浏览器信息
Java基础:获取操作系统及浏览器信息 前言 今天博主将为大家分享Java基础:获取操作系统及浏览器信息,不喜勿喷,如有异议欢迎讨论! 有一个强大的地基才能写出健壮的程序! User Agent的含义 ...
- java里 currenttime_java 获取当前时间LocalDateTime currentTimeMillis java.util.Date
总结java里面关于获取当前时间的一些方法 System.currentTimeMillis() 获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响, ...
- java 根据ip获取mac地址,java服务器端根据ip获取客户端mac地址
java服务器端根据ip获取客户端mac地址 2014/8/20 22:01:29 475900947 程序员俱乐部 我要评论(1) 摘要://判断系统publicStringcheckSys( ...
- h5获取android手机版本,Vue.js怎么获取手机系统型号、版本、浏览器类型
Vue.js怎么获取手机系统型号.版本.浏览器类型 发布时间:2020-07-28 11:22:33 来源:亿速云 阅读:161 作者:小猪 这篇文章主要为大家展示了Vue.js怎么获取手机系统型号. ...
- GetMACAddress 在java查询中获取 MACA 地址
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * 在 ...
最新文章
- 按照重复的次数高到低进行排序
- format函数_畅游人工智能之海 | Keras教程之后端函数(一)
- android studio建数据库表,在android studio中创建表
- 微信开发 调用摄像机拍照(录像)功能
- jQuery EasyUI API 中文文档 - 菜单按钮(MenuButton)
- css3 圣诞红包雨效果
- Android仿微信源码下载
- linux怎么生成arm文件,Linux下ffmpeg转换工具配置(MP3和AMR格式文件互转).docx
- Android Studio kotlin代码莫名出现“lazy”,“arrayListOf”,“let”等关键字变红的问题
- 5G 第五代移动通信系统你知多少?
- 如何考上复旦大学研究生
- 【使用QGIS入库将shp数据导入postgis、postgres数据库】
- CYCA 2022少儿形体礼仪初级师资班 深圳总部站圆满结束
- 解决嵌入百度导航4.1.x遇到的坑
- Android——多进程
- Windows 下安装 Xdebug 受难记之(1)
- QQ2012[QQ圈子]功能试用:按照真实生活将好友分圈
- 梅科尔工作室-杜涵宁-鸿蒙笔记4
- Linux智能家居系统(家用IOT技术)-立哥经验
- 请教:Java字符串内部的大括号,与方法参数中的...,代表什么意思呢?
热门文章
- php富文本防注入_HTML Purifier,PHP中过滤富文本防止XSS攻击
- 微信小程序制作-----日历记事本
- 使用html2canvas 生成h5项目中需要的海报效果,uniapp 生成h5海报
- [译]无迹卡尔曼滤波教程
- 太原理工大学系统分析与设计实验报告实验室设备_“艺术之光”绽放太原理工大学首届本科生专业节...
- ios wifi 定位_一种IOS设备的集中式Wifi室内定位方法
- Qt 实现PC端网易云音乐界面
- 疑为灵异现象不可思议的透明液晶揭秘
- centos 防火墙关闭 不能访问3306端口
- android自定义计步器形状,Android自定义View仿QQ运动步数效果