UserAgentUtils是Java Web項目中一個非常常用的工具庫,用於解析用戶瀏覽器的User-Agent字符串,以獲取所訪問的設備類型、操作系統類型和版本、瀏覽器類型和版本等信息。
一、獲取設備類型
UserAgentUtils可以解析出訪問者使用的設備類型,如PC、手機、平板等。首先,我們需要獲取HttpServletRequest對象,然後使用UserAgentUtils進行解析,示例如下:
/**
* 獲取設備類型
*
* @param request
* @return
*/
public static DeviceTypeEnum getDeviceType(HttpServletRequest request) {
String userAgantStr = request.getHeader("User-Agent");
UserAgent userAgent = UserAgent.parseUserAgentString(userAgantStr);
if (userAgent.getOperatingSystem().getDeviceType() == DeviceType.MOBILE) {
return DeviceTypeEnum.MOBILE;
} else if (userAgent.getOperatingSystem().getDeviceType() == DeviceType.TABLET) {
return DeviceTypeEnum.TABLET;
} else {
return DeviceTypeEnum.PC;
}
}
二、獲取操作系統類型和版本
UserAgentUtils還可以解析出所訪問的設備的操作系統和版本信息。示例如下:
/**
* 獲取操作系統類型和版本
*
* @param request
* @return
*/
public static String getOsNameAndVersion(HttpServletRequest request) {
String userAgantStr = request.getHeader("User-Agent");
UserAgent userAgent = UserAgent.parseUserAgentString(userAgantStr);
OperatingSystem os = userAgent.getOperatingSystem();
String osName = os.getName();
if (osName.contains("Windows")) {
OperatingSystemVersion version = os.getVersion();
osName = osName + " " + version;
}
return osName;
}
三、獲取瀏覽器類型和版本
UserAgentUtils可以非常方便地解析出所訪問的設備使用的瀏覽器類型和版本信息。示例如下:
/**
* 獲取瀏覽器類型和版本
*
* @param request
* @return
*/
public static String getBrowserNameAndVersion(HttpServletRequest request) {
String userAgantStr = request.getHeader("User-Agent");
UserAgent userAgent = UserAgent.parseUserAgentString(userAgantStr);
Browser browser = userAgent.getBrowser();
String browserName = browser.getName();
if (browser.getBrowserType() == BrowserType.WEB_BROWSER) {
Version version = userAgent.getBrowserVersion();
browserName = browserName + " " + version;
}
return browserName;
}
四、獲取其他信息
UserAgentUtils還可以獲取本機的一些信息,如IP地址、MAC地址等。示例如下:
/**
* 獲取IP地址
*
* @param request
* @return
*/
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
/**
* 獲取MAC地址
*
* @param ip
* @return
*/
public static String getMacAddr(String ip) {
String mac = "";
try {
Process process = Runtime.getRuntime().exec("arp -a " + ip);
InputStreamReader ir = new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
process.waitFor();
String line;
while ((line = input.readLine()) != null) {
line = line.trim();
if (line.startsWith(ip)) {
mac = line.substring(line.indexOf('-') - 2, line.indexOf('-') + 14);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
return mac;
}
五、小結
UserAgentUtils是解析用戶瀏覽器信息的一個非常方便的工具類,可以獲取到如設備類型、操作系統類型和版本、瀏覽器類型和版本、IP地址、MAC地址等信息。以上是部分使用示例,更多詳細的使用方法可以查看官方文檔。
原創文章,作者:FCFY,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/148255.html
微信掃一掃
支付寶掃一掃