欢迎访问优讯网!
您当前的位置:首页 > 爱编程

Java通过Request请求获取IP地址 java获取真实IP地址

时间:2019-04-11 09:38:15  来源:优讯网  作者:小卡司  浏览次数:
Java通过Request请求获取IP地址 java获取真实IP地址  业务需求,需要记录登陆者的IP地址到系统日志中去,使用了Spring AOP来实现,后台的话获取IP地址我们用到了网上分享的一个IP获取工具,这里记录一下,方便遇到和我一样问题的小伙伴借鉴,一起来看看吧!

package com.bjidit.mis.utils;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
public class IpAdrressUtil {
    /**
       * 获取Ip地址
    * @param request
    * @return
    */
    public static String getIpAdrress(HttpServletRequest request) {
        String Xip = request.getHeader("X-Real-IP");
        String XFor = request.getHeader("X-Forwarded-For");
        if (StringUtils.isNotEmpty(XFor) && !"unKnown".equalsIgnoreCase(XFor)) {
            // 多次反向代理后会有多个ip值,第一个ip才是真实ip
            int index = XFor.indexOf(",");
            if (index != -1) {
                return XFor.substring(0, index);
            } else {
                return XFor;
            }
        }
        XFor = Xip;
        if (StringUtils.isNotEmpty(XFor) && !"unKnown".equalsIgnoreCase(XFor)) {
            return XFor;
        }
        if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) {
            XFor = request.getHeader("Proxy-Client-IP");
        }
        if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) {
            XFor = request.getHeader("WL-Proxy-Client-IP");
        }
        if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) {
            XFor = request.getHeader("HTTP_CLIENT_IP");
        }
        if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) {
            XFor = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if (StringUtils.isBlank(XFor) || "unknown".equalsIgnoreCase(XFor)) {
            XFor = request.getRemoteAddr();
        }
        return XFor;
    }
}

AOP中使用代码调用即可获取IP地址,代码实现如下:
 HttpServletRequest request =
          ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
           HttpSession session =request.getSession();
        //获取用户ip地址
        sysLog.setIp(IpAdrressUtil.getIpAdrress(request));

以上就是关于 Java通过Request请求获取IP地址 java获取真实IP地址 的全部内容了,喜欢的小伙伴别忘了点赞分享一下哦,关注优讯网,优讯有你更精彩!
来顶一下
返回首页
返回首页
推荐资讯
计算机的正确使用姿势 电脑痴如何正确的使用电脑
计算机的正确使用姿势
好用的后台管理的前端框架模版H-ui H-ui框架模版分享
好用的后台管理的前端
微信电脑多开方法 无需辅助电脑版微信双开方法分享
微信电脑多开方法 无
Python实现网站百度主动推送 python实现主动推送网站地图
Python实现网站百度主
相关文章
    无相关信息
栏目更新
栏目热门