java如何获取用户登录ip、浏览器信息、SessionId

 更新时间:2021年11月08日 15:07:13   作者:精打细算  
这篇文章主要介绍了java如何获取用户登录ip、浏览器信息、SessionId,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

java获取用户登录ip、浏览器信息、SessionId

1、获取用户登录ip

//获取用户登录ip;
String loginIp = request.getHeader("X-Forwarded-For");
if (loginIp == null || loginIp.length() == 0 || "unknown".equalsIgnoreCase(loginIp)) {
    loginIp = request.getHeader("X-Real-IP");
}
if (loginIp == null || loginIp.length() == 0 || "unknown".equalsIgnoreCase(loginIp)) {
    loginIp = request.getHeader("Proxy-Client-IP");
}
if (loginIp == null || loginIp.length() == 0 || "unknown".equalsIgnoreCase(loginIp)) {
    loginIp = request.getHeader("WL-Proxy-Client-IP");
}
if (loginIp == null || loginIp.length() == 0 || "unknown".equalsIgnoreCase(loginIp)) {
    loginIp = request.getHeader("HTTP_CLIENT_IP");
}
if (loginIp == null || loginIp.length() == 0 || "unknown".equalsIgnoreCase(loginIp)) {
    loginIp = request.getRemoteAddr();
}

2、获取用户所使用的浏览器信息

/**
*获取浏览器信息;
*/
String ua = request.getHeader("User-Agent");
//转成UserAgent对象
UserAgent userAgent = UserAgent.parseUserAgentString(ua); 
Browser browser = userAgent.getBrowser();
String browserInfo=browser.toString();//浏览器名

3、获取用户SessionId

request.getSession().getId();

获取用户登录的ip地址(考虑多种请求头的情况)

这段代码网上找的,传一个HttpServletRequest request就行,直接用

public class IpUtil {
    /**
     * 获取登录用户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();
        }
        if (ip.equals("0:0:0:0:0:0:0:1")) {
            ip = "本地";
        }
        return ip;
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java OpenCV图像处理之SIFT角点检测详解

    Java OpenCV图像处理之SIFT角点检测详解

    SIFT,即尺度不变特征变换,是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。本文将详细介绍一下Java OpenCV图像处理中的SIFT角点检测,需要的可以参考一下
    2022-02-02
  • token工作机制及原理附Java生成token工具类

    token工作机制及原理附Java生成token工具类

    这篇文章介绍了token工作机制及原理,内附Java生成token工具类Demo。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • springboot定时任务备份mysql数据库的实现示例

    springboot定时任务备份mysql数据库的实现示例

    为了防止数据库被清库或者误删数据库的情况,所以需要定时将mysql数据库中的数据进行备份,本文主要介绍了springboot定时任务备份mysql数据库的实现示例,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • Java中JDBC连接池的基本原理及实现方式

    Java中JDBC连接池的基本原理及实现方式

    本文详细讲解了Java中JDBC连接池的基本原理及实现方式,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • 详解Spring Boot 部署jar和war的区别

    详解Spring Boot 部署jar和war的区别

    本篇文章主要介绍了详解Spring Boot 部署jar和war的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Java堆&优先级队列示例讲解(下)

    Java堆&优先级队列示例讲解(下)

    这篇文章主要通过示例详细为大家介绍Java中的堆以及优先级队列,文中的示例代码讲解详细,对我们了解java有一定帮助,需要的可以参考一下
    2022-03-03
  • Intellij IDEA 如何通过数据库表生成带注解的实体类(图文详细教程)

    Intellij IDEA 如何通过数据库表生成带注解的实体类(图文详细教程)

    这篇文章主要介绍了Intellij IDEA 如何通过数据库表生成带注解的实体类(图文详细教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 一篇文章告诉你JAVA Mybatis框架的核心原理到底有多重要

    一篇文章告诉你JAVA Mybatis框架的核心原理到底有多重要

    yBatis的底层操作封装了JDBC的API,MyBatis的工作原理以及核心流程与JDBC的使用步骤一脉相承,MyBatis的核心对象(SqlSession,Executor)与JDBC的核心对象(Connection,Statement)相互对应
    2021-06-06
  • 使用maven一步一步构建spring mvc项目(图文详解)

    使用maven一步一步构建spring mvc项目(图文详解)

    这篇文章主要介绍了详解使用maven一步一步构建spring mvc项目,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • SpringBoot实现国际化过程详解

    SpringBoot实现国际化过程详解

    这篇文章主要介绍了SpringBoot实现国际化过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论