您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“如何用Java獲取操作系統(tǒng)及瀏覽器信息”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何用Java獲取操作系統(tǒng)及瀏覽器信息”吧!
User Agent 的含義
瀏覽器的 UA 字串
UserAgentUtils.jar
通過(User-Agent)獲取 瀏覽器類型,操作系統(tǒng)類型,手機(jī)機(jī)型
再給出一個:
總結(jié)
在生產(chǎn)環(huán)境下,我們需要關(guān)閉swagger配置,避免暴露接口的這種危險行為。
User Agent 中文名為用戶代理,簡稱 UA,它是一個特殊字符串頭,使得服務(wù)器能夠識別客戶使用的操作系統(tǒng)及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。
一些網(wǎng)站常常通過判斷 UA 來給不同的操作系統(tǒng)、不同的瀏覽器發(fā)送不同的頁面,因此可能造成某些頁面無法在某個瀏覽器中正常顯示,但通過偽裝 UA 可以繞過檢測。
標(biāo)準(zhǔn)格式為: 瀏覽器標(biāo)識 (操作系統(tǒng)標(biāo)識; 加密等級標(biāo)識; 瀏覽器語言) 渲染引擎標(biāo)識 版本信息
瀏覽器標(biāo)識
由于很多網(wǎng)站在進(jìn)行 UA 檢測的時候忽略了兩位數(shù)版本號,所以可能造成 瀏覽器及之后版本收到糟糕的頁面,因此自 瀏覽器 10 之后的版本中瀏覽器標(biāo)識項(xiàng)固定為 瀏覽器,在 UA 字串尾部添加真實(shí)版本信息。
注:源自百度百科
UserAgentUtils.jar 是 UserAgent 的工具類。
maven如下:
<!-- https://mvnrepository.com/artifact/eu.bitwalker/UserAgentUtils --> <dependency> <groupId>eu.bitwalker</groupId> <artifactId>UserAgentUtils</artifactId> <version>1.20</version> </dependency>
java代碼如下:
UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent")); Browser browser = userAgent.getBrowser(); OperatingSystem os = userAgent.getOperatingSystem();
方法
package com.cyj.controller; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import eu.bitwalker.useragentutils.Browser; import eu.bitwalker.useragentutils.OperatingSystem; import eu.bitwalker.useragentutils.UserAgent; /** * * @Description: 獲取ip控制器 * @ClassName: IpController.java * @author ChenYongJia * @Date 2019年4月20日 晚上20:25 * @Email chen87647213@163.com */ @RestController public class IpController { private static final Logger log = LoggerFactory.getLogger(IpController.class); /** * 獲取操作系統(tǒng)及瀏覽器信息 * @param request * @return */ @RequestMapping(value="/browser",method = RequestMethod.GET) public void getBrowser(HttpServletRequest request){ String ua = request.getHeader("User-Agent"); log.info("******************************"); log.info("操作系統(tǒng)及瀏覽器信息:"+ua); //轉(zhuǎn)成UserAgent對象 UserAgent userAgent = UserAgent.parseUserAgentString(ua); //獲取瀏覽器信息 Browser browser = userAgent.getBrowser(); log.info("瀏覽器信息:"+browser); //獲取系統(tǒng)信息 OperatingSystem os = userAgent.getOperatingSystem(); log.info("系統(tǒng)信息:"+os); //系統(tǒng)名稱 String system = os.getName(); log.info("系統(tǒng)名稱:"+system); //瀏覽器名稱 String browserName = browser.getName(); log.info("瀏覽器名稱:"+browserName); log.info("******************************"); } }
結(jié)果如下:
**************火狐****************
操作系統(tǒng)及瀏覽器信息:Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0
瀏覽器信息:FIREFOX
系統(tǒng)信息:WINDOWS_7
系統(tǒng)名稱:Windows 7
瀏覽器名稱:Firefox
********************************************谷歌****************
操作系統(tǒng)及瀏覽器信息:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36
瀏覽器信息:CHROME
系統(tǒng)信息:WINDOWS_7
系統(tǒng)名稱:Windows 7
瀏覽器名稱:Chrome
******************************************IE******************
操作系統(tǒng)及瀏覽器信息:Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
瀏覽器信息:MOZILLA
系統(tǒng)信息:WINDOWS_7
系統(tǒng)名稱:Windows 7
瀏覽器名稱:Mozilla******************************
獲得瀏覽器請求頭中的 User-Agent
String ua = request.getHeader("User-Agent")
獲得瀏覽器類型,操作系統(tǒng)類型,請看上面的 java代碼 如下標(biāo)題內(nèi)容
獲得手機(jī)類型:
package com.cyj.controller; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import eu.bitwalker.useragentutils.Browser; import eu.bitwalker.useragentutils.OperatingSystem; import eu.bitwalker.useragentutils.UserAgent; /** * * @Description: 獲取ip控制器 * @ClassName: IpController.java * @author ChenYongJia * @Date 2019年4月20日 晚上20:25 * @Email chen87647213@163.com */ @RestController public class IpController { private static final Logger log = LoggerFactory.getLogger(IpController.class); /** * 獲取操作系統(tǒng)及瀏覽器信息 * @param request * @return */ @RequestMapping(value="/browser",method = RequestMethod.GET) public void getBrowser(HttpServletRequest request){ UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent")); Browser browser = userAgent.getBrowser(); OperatingSystem os = userAgent.getOperatingSystem(); Pattern pattern = Pattern.compile(";\\s?(\\S*?\\s?\\S*?)\\s?(Build)?/"); Matcher matcher = pattern.matcher((CharSequence) userAgent); String model = null; if (matcher.find()) { model = matcher.group(1).trim(); log.debug("通過userAgent解析出機(jī)型:" + model); } } }
package com.cyj.controller; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import eu.bitwalker.useragentutils.Browser; import eu.bitwalker.useragentutils.OperatingSystem; import eu.bitwalker.useragentutils.UserAgent; import eu.bitwalker.useragentutils.Version; /** * * @Description: 獲取ip控制器 * @ClassName: IpController.java * @author ChenYongJia * @Date 2019年4月20日 晚上20:25 * @Email chen87647213@163.com */ @RestController public class IpController { private static final Logger log = LoggerFactory.getLogger(IpController.class); /** * 獲取操作系統(tǒng)及瀏覽器信息 * * @param request * @return */ @RequestMapping(value = "/browser", method = RequestMethod.GET) public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String agentStr = request.getHeader("user-agent"); System.out.println(agentStr); UserAgent agent = UserAgent.parseUserAgentString(agentStr); // 瀏覽器 Browser browser = agent.getBrowser(); System.out.println("類型:" + browser.getBrowserType() + "\n名稱:" + browser.getName() + "\n廠商:" + browser.getManufacturer() + "\n產(chǎn)品系列:" + browser.getGroup() + "\n引擎:" + browser.getRenderingEngine()); // 瀏覽器版本 Version version = agent.getBrowserVersion(); System.out.println("========================"); System.out.println("主版本:" + version.getMajorVersion() + "\n小版本:" + version.getMinorVersion() + "\n完整版本:" + version.getVersion()); // 操作系統(tǒng) System.out.println("========================"); OperatingSystem os = agent.getOperatingSystem(); System.out.println("名稱:" + os.getName() + "\n設(shè)備類型:" + os.getDeviceType() + "\n產(chǎn)品系列:" + os.getGroup() + "\n生成廠商:" + os.getManufacturer()); } }
各位小伙伴自行測試結(jié)果吧?。?!
到此,相信大家對“如何用Java獲取操作系統(tǒng)及瀏覽器信息”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。