JavaWeb获取请求的ip地址,浏览器版本,操作系统工具类
2022/1/11 11:03:53
本文主要是介绍JavaWeb获取请求的ip地址,浏览器版本,操作系统工具类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、引入依赖
<!--fastjson依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.73</version> </dependency> <!--bitwalker依赖--> <dependency> <groupId>eu.bitwalker</groupId> <artifactId>UserAgentUtils</artifactId> <version>1.21</version> </dependency>
2、获取数据
import com.alibaba.fastjson.JSONObject; import eu.bitwalker.useragentutils.Browser; import eu.bitwalker.useragentutils.OperatingSystem; import eu.bitwalker.useragentutils.UserAgent; import eu.bitwalker.useragentutils.Version; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.net.InetAddress; import java.net.UnknownHostException; @RestController public class TestController { @GetMapping(value = {"/", "/index"}) public JSONObject index(HttpServletRequest request, HttpServletResponse response) { /*获取请求IP*/ String requestIp = IpAndAddrUtil.getIp(request); /*获取发起请求的浏览器版本号*/ String browserVersion = IpAndAddrUtil.getBrowserVersion(request); /*获取发起请求的操作系统名称*/ String osName = IpAndAddrUtil.getOsName(request); /*获取发起请求的浏览器名称*/ String browserName = IpAndAddrUtil.getBrowserName(request); JSONObject jsonObject = new JSONObject(); jsonObject.put("ip", requestIp); jsonObject.put("browserVersion", browserVersion); jsonObject.put("osName", osName); jsonObject.put("browserName", browserName); return jsonObject; } } /** * 获取请求IP地址、浏览器相关信息 */ 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(); } }
这篇关于JavaWeb获取请求的ip地址,浏览器版本,操作系统工具类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南