最近做项目中,我碰到取客户端浏览器和操作系统信息的问题,网上找了很久,大多都是在页面中嵌入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,系统和浏览器版本相关推荐

  1. js获取内网ip地址,操作系统,浏览器版本等信息

    这次呢,说一下使用js获取用户电脑的ip信息,刚开始只是想获取用户ip,后来就顺带着获取了操作系统和浏览器信息. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器 ...

  2. js获取内网/局域网ip地址,操作系统,浏览器版本等信息

    这次呢,说一下使用js获取用户电脑的ip信息,刚开始只是想获取用户ip,后来就顺带着获取了操作系统和浏览器信息. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器 ...

  3. Android利用Java反射获取用户手机的rom定制系统及版本,EMUI,MIUI,ColorOS,FunthouchOS等

    Android利用Java反射获取用户手机的rom定制系统版本及版本号,EMUI,MIUI,ColorOS,FunthouchOS等 前言 正文 结语 前言 现在手机厂商都推出了自己的基于Androi ...

  4. java 获取mysql timestamp_java获取获得Timestamp类型的当前系统时间

    java获取取得Timestamp类型的当前系统时间 java获取取得Timestamp类型的当前系统时间 格式:2010-11-04 16:19:42 方法1: Timestamp d = new ...

  5. Java基础:获取操作系统及浏览器信息

    Java基础:获取操作系统及浏览器信息 前言 今天博主将为大家分享Java基础:获取操作系统及浏览器信息,不喜勿喷,如有异议欢迎讨论! 有一个强大的地基才能写出健壮的程序! User Agent的含义 ...

  6. java里 currenttime_java 获取当前时间LocalDateTime currentTimeMillis java.util.Date

    总结java里面关于获取当前时间的一些方法 System.currentTimeMillis() 获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响, ...

  7. java 根据ip获取mac地址,java服务器端根据ip获取客户端mac地址

    java服务器端根据ip获取客户端mac地址 2014/8/20 22:01:29  475900947  程序员俱乐部  我要评论(1) 摘要://判断系统publicStringcheckSys( ...

  8. h5获取android手机版本,Vue.js怎么获取手机系统型号、版本、浏览器类型

    Vue.js怎么获取手机系统型号.版本.浏览器类型 发布时间:2020-07-28 11:22:33 来源:亿速云 阅读:161 作者:小猪 这篇文章主要为大家展示了Vue.js怎么获取手机系统型号. ...

  9. GetMACAddress 在java查询中获取 MACA 地址

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * 在 ...

最新文章

  1. 按照重复的次数高到低进行排序
  2. format函数_畅游人工智能之海 | Keras教程之后端函数(一)
  3. android studio建数据库表,在android studio中创建表
  4. 微信开发 调用摄像机拍照(录像)功能
  5. jQuery EasyUI API 中文文档 - 菜单按钮(MenuButton)
  6. css3 圣诞红包雨效果
  7. Android仿微信源码下载
  8. linux怎么生成arm文件,Linux下ffmpeg转换工具配置(MP3和AMR格式文件互转).docx
  9. Android Studio kotlin代码莫名出现“lazy”,“arrayListOf”,“let”等关键字变红的问题
  10. 5G 第五代移动通信系统你知多少?
  11. 如何考上复旦大学研究生
  12. 【使用QGIS入库将shp数据导入postgis、postgres数据库】
  13. CYCA 2022少儿形体礼仪初级师资班 深圳总部站圆满结束
  14. 解决嵌入百度导航4.1.x遇到的坑
  15. Android——多进程
  16. Windows 下安装 Xdebug 受难记之(1)
  17. QQ2012[QQ圈子]功能试用:按照真实生活将好友分圈
  18. 梅科尔工作室-杜涵宁-鸿蒙笔记4
  19. Linux智能家居系统(家用IOT技术)-立哥经验
  20. 请教:Java字符串内部的大括号,与方法参数中的...,代表什么意思呢?

热门文章

  1. php富文本防注入_HTML Purifier,PHP中过滤富文本防止XSS攻击
  2. 微信小程序制作-----日历记事本
  3. 使用html2canvas 生成h5项目中需要的海报效果,uniapp 生成h5海报
  4. [译]无迹卡尔曼滤波教程
  5. 太原理工大学系统分析与设计实验报告实验室设备_“艺术之光”绽放太原理工大学首届本科生专业节...
  6. ios wifi 定位_一种IOS设备的集中式Wifi室内定位方法
  7. Qt 实现PC端网易云音乐界面
  8. 疑为灵异现象不可思议的透明液晶揭秘
  9. centos 防火墙关闭 不能访问3306端口
  10. android自定义计步器形状,Android自定义View仿QQ运动步数效果