引入jar包

<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
<version>1.20</version>
</dependency>

代码:

package com.test;

import eu.bitwalker.useragentutils.Browser;
import eu.bitwalker.useragentutils.OperatingSystem;
import eu.bitwalker.useragentutils.UserAgent;
import eu.bitwalker.useragentutils.Version; import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException; public class IpAndAddrUtil { /**
* 获取发起请求的IP地址
*/
public static String getIp(HttpServletRequest request) {
String ip = null;
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();
if (ip.equals("127.0.0.1")) {
InetAddress inet = null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ip = inet.getHostAddress();
}
}
if ((ip != null) && (ip.length() > 15)) {
if (ip.indexOf(",") > 0) {
ip = ip.substring(0, ip.indexOf(","));
}
}
return ip;
} /**
* 获取发起请求的浏览器名称
*/
public static String getBrowserName(HttpServletRequest request) {
String header = request.getHeader("User-Agent");
UserAgent userAgent = UserAgent.parseUserAgentString(header);
Browser browser = userAgent.getBrowser();
return browser.getName();
} /**
* 获取发起请求的浏览器版本号
*/
public static String getBrowserVersion(HttpServletRequest request) {
String header = request.getHeader("User-Agent");
UserAgent userAgent = UserAgent.parseUserAgentString(header);
// 获取浏览器信息
Browser browser = userAgent.getBrowser();
// 获取浏览器版本号
Version version = browser.getVersion(header);
return version.getVersion();
} /**
* 获取发起请求的操作系统名称
*/
public static String getOsName(HttpServletRequest request) {
String header = request.getHeader("User-Agent");
UserAgent userAgent = UserAgent.parseUserAgentString(header);
OperatingSystem operatingSystem = userAgent.getOperatingSystem();
return operatingSystem.getName();
}
}

原文参考:https://www.cnblogs.com/qubo520/p/10970845.html

最新文章

  1. KendoUI系列:Grid
  2. nodejs图片转换字节保存
  3. 4817 江哥的dp题d
  4. C和C++的头文件总结
  5. poj 3077Rounders(模拟)
  6. Metrics.NET report to Zabbix
  7. POJ 1062 昂贵的聘礼(Dijkstra)
  8. 转载 ASP.NET中如何取得Request URL的各个部分
  9. Eclipse快捷键 10个最有用的快捷键(转)
  10. PHP文件系统概述
  11. ezw证件照芯片压缩算法
  12. go语言的数组和切片区别
  13. 09 ExpanableListView 的代码例子
  14. ORACLE数据库维护
  15. 微信小程序跳转小程序
  16. EM算法笔记
  17. StringRedisTemplate操作redis数据
  18. MT【172】内外圆
  19. CentOS7.5搭建Solr7.4.0集群服务
  20. Simple2D-15(音乐播放器)使用 glfw 库

热门文章

  1. c++的const总结(转)
  2. Flutter实战视频-移动电商-32.列表页_小类高亮交互效果制作
  3. HDU - 1098 - Ignatius&#39;s puzzle - ax+by=c
  4. 如何设置Xcode模拟器地图的当前位置
  5. Lightoj 1082【RMQ】
  6. Lightoj1028 【数学-乘法原理】
  7. Node.js 内置模块fs(文件系统)
  8. 解读ping -n 4 127.1 &gt;nul 2&gt;nul
  9. radio与img对齐 (CSS3)
  10. 17.TLB