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如何获取用户登录ip、浏览器信息、SessionId的详细内容...