获取本地IP地址信息,请求地址,请求的操作系统信息 ,浏览器信息

程序运行效果图,如果这种有你需要的信息,不妨随着小编一起看下去吧!

(1)接口

 在浏览器上访问 localhost:8089/test/cs

  @RequestMapping("/cs")
    public String cs(HttpServletRequest request) {
            Map<String, String> map = CommenUtil.getClientInfo(request);
            System.out.println("请求地址:-----"+map.get("requestAddress"));
            System.out.println("请求的操作系统信息----"+map.get("operationSystem"));
            System.out.println("获取浏览器信息----"+map.get("browerInfo"));
            System.out.println("获取ip信息----"+map.get("ip"));
        return "ok1";
    }

(2)CommenUtil

 /**
     * 获取用户登录的一些信息
     *
     * @param
     * @return
     */
    public static Map<String, String> getClientInfo(HttpServletRequest request) {
        Map<String, String> map = new HashMap<>();
        String browserInfo = "";
        String ip = CommenUtil.getIpAddr(request);
        UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
        Browser browser = userAgent.getBrowser();
        String requestAddress = request.getHeader("host");
        //获取浏览器版本号
        Version version = browser.getVersion(request.getHeader("User-Agent"));
        //微信小程序登录可能没有这个版本信息
        if (version != null) {
            browserInfo = browser.getName() + "/" + version.getVersion();
        } else {
            browserInfo = browser.getName();
        }
        OperatingSystem operatingSystem = userAgent.getOperatingSystem();
        String name = operatingSystem.getName();

        map.put("ip", ip);
        map.put("operationSystem", name);
        map.put("requestAddress", requestAddress);
        map.put("browerInfo", browserInfo);
        return map;

    }

(3)获取当前登录的IP地址

 /**
     * 获取当前客户端登录的真实ip地址
     *
     * @param request
     * @return
     */
    public static String getIpAddr(HttpServletRequest request) {
        String ipAddress = request.getHeader("x-forwarded-for");
        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getRemoteAddr();
            if (Constant.LOCAL_ADDRESS.equals(ipAddress) || Constant.LOCAL_IP.equals(ipAddress)) {
                //根据网卡取本机配置的IP
                InetAddress inet = null;
                try {
                    inet = InetAddress.getLocalHost();
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                }
                ipAddress = inet.getHostAddress();
            }
        }
        //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 //"***.***.***.***".length() = 15
        if (ipAddress != null && ipAddress.length() > 15) {
            if (ipAddress.indexOf(",") > 0) {
                ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
            }
        }
        return ipAddress;
    }

整篇文章就到这里啦,希望能够帮助到有需要的你 ,一起加油

猜你喜欢

转载自blog.csdn.net/tangthh123/article/details/106387361
今日推荐