服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - java如何获取用户登录ip、浏览器信息、SessionId

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

2022-07-16 12:04精打细算 Java教程

这篇文章主要介绍了java如何获取用户登录ip、浏览器信息、SessionId,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

1、获取用户登录ip

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//获取用户登录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、获取用户所使用的浏览器信息

?
1
2
3
4
5
6
7
8
/**
*获取浏览器信息;
*/
String ua = request.getHeader("User-Agent");
//转成UserAgent对象
UserAgent userAgent = UserAgent.parseUserAgentString(ua);
Browser browser = userAgent.getBrowser();
String browserInfo=browser.toString();//浏览器名

3、获取用户SessionId

?
1
request.getSession().getId();

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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;
    }
}

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

原文链接:https://blog.csdn.net/weixin_40076255/article/details/90766391

延伸 · 阅读

精彩推荐
  • Java教程MyBatis Plus 将查询结果封装到指定实体的方法步骤

    MyBatis Plus 将查询结果封装到指定实体的方法步骤

    这篇文章主要介绍了MyBatis Plus 将查询结果封装到指定实体的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值...

    魔有追求7072020-09-26
  • Java教程详解Spring框架入门

    详解Spring框架入门

    这篇文章主要介绍了详解Spring框架入门,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    佳先森9602021-04-19
  • Java教程Java Spring事务的隔离级别详解

    Java Spring事务的隔离级别详解

    这篇文章主要介绍了Java Spring事务的隔离级别,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下...

    置顶 、唐城9252022-03-05
  • Java教程肝疼了3万字的Spring容器启动流程

    肝疼了3万字的Spring容器启动流程

    Spring Framework 是 Java 语言中影响最为深远的框架之一,其中的 IOC 和 AOP 两个经典思想更是一直被程序员津津乐道,后面推出的 Spring Boot、Spring Cloud 系列也是...

    三太子敖丙3122020-11-23
  • Java教程Java synchronized最细讲解

    Java synchronized最细讲解

    synchronized是Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。本文给大家介绍java中...

    Penguin——科波特6982021-12-25
  • Java教程深入理解Java的接口与抽象类

    深入理解Java的接口与抽象类

    本文主要介绍java 的接口和抽象类,对接口和抽象类进行介绍对比,深入理解,有需要的小伙伴可以参考下 ...

    java技术网3622020-05-29
  • Java教程Java中Integer类型值相等判断方法

    Java中Integer类型值相等判断方法

    这篇文章主要给大家介绍了关于Java中Integer类型值相等判断的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价...

    渣渣小码渣6842021-08-03
  • Java教程使用Java编写一个简单的Web的监控系统

    使用Java编写一个简单的Web的监控系统

    这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实用,需要的朋友可以参考下 ...

    snoopy77135172020-01-21