获取本地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;
    }

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值