Class UserAgents

java.lang.Object
tech.riemann.nif.utils.ua.UserAgents

public class UserAgents extends Object
用户代理解析工具类

用于解析用户代理字符串,获取设备类型、操作系统、浏览器等信息

基于UserAgentAnalyzer库实现,支持解析现代浏览器的Sec-Ch-Ua系列头部

主要功能: 1. 解析用户代理字符串获取详细信息 2. 从HTTP请求中提取用户代理相关头部 3. 支持缓存以提高解析性能

Author:
Kerbores(kerbores@riemann.tech)
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    用户代理信息类
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static UserAgents
    返回UserAgents的实例,该实例用于解析用户代理字符串 解析用户代理字符串以获取设备类别、操作系统名称和版本、代理名称和版本等信息
    parse(jakarta.servlet.http.HttpServletRequest request)
    从HttpServletRequest中提取并解析用户代理字符串,创建并返回一个Agent对象
    解析用户代理字符串并返回Agent对象 该方法首先使用UserAgentAnalyzerUtils解析用户代理字符串, 然后使用Builder模式构建并返回一个包含解析结果的Agent对象
    parse(Map<String,String> requestHeaders)
    解析请求头中的用户代理信息
    userAgentHeaders(jakarta.servlet.http.HttpServletRequest request)
    从HTTP请求中提取用户代理相关的头部信息 此方法旨在通过请求对象获取一系列预定义头部字段的方法 它使用TreeMap来确保头部字段按字母顺序排列

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • UserAgents

      public UserAgents()
  • Method Details

    • instance

      public static UserAgents instance()
      返回UserAgents的实例,该实例用于解析用户代理字符串 解析用户代理字符串以获取设备类别、操作系统名称和版本、代理名称和版本等信息

      M52: 单例(volatile 双检锁)——只构建一次 UserAgentAnalyzer

      Returns:
      UserAgents的实例,用于解析用户代理信息
    • parse

      public UserAgents.Agent parse(String ua)
      解析用户代理字符串并返回Agent对象 该方法首先使用UserAgentAnalyzerUtils解析用户代理字符串, 然后使用Builder模式构建并返回一个包含解析结果的Agent对象
      Parameters:
      ua - 用户代理字符串,表示客户端的请求信息
      Returns:
      Agent对象,包含设备类型、操作系统、浏览器等信息
    • userAgentHeaders

      public Map<String,String> userAgentHeaders(jakarta.servlet.http.HttpServletRequest request)
      从HTTP请求中提取用户代理相关的头部信息 此方法旨在通过请求对象获取一系列预定义头部字段的方法 它使用TreeMap来确保头部字段按字母顺序排列
      Parameters:
      request - 当前的HTTP请求对象,用于从中提取头部信息
      Returns:
      返回一个Map对象,包含提取到的头部字段及其值
    • parse

      public UserAgents.Agent parse(Map<String,String> requestHeaders)
      解析请求头中的用户代理信息
      Parameters:
      requestHeaders - 请求头信息,预期包含用户代理字符串
      Returns:
      Agent对象,包含了解析后的设备、操作系统、浏览器等信息
    • parse

      public UserAgents.Agent parse(jakarta.servlet.http.HttpServletRequest request)
      从HttpServletRequest中提取并解析用户代理字符串,创建并返回一个Agent对象
      Parameters:
      request - HttpServletRequest对象,包含了HTTP请求的信息
      Returns:
      返回一个包含用户代理信息的Agent对象