java 开发获取真实的iP遇到的坑

遇到问题情况是

1.通过natapp 进行域名代理转发到本地

2.本地通过nginx进行转发,由于需要记录用户的操作,所以 需要获取用的真实操作ip,但是死活获取不到,只能获取到本地的127.0.0.1

各种找方法都无果,然后求助公司nginx 大佬,最后发现natapp自身的坑,他会把转发数据进行截取X-Real-IP,会被他进行操作,导致一直获取不到

当然他会自己携带X-Natapp-Ip,当然以上在实际的开发中是不会出现的情况,当时我当时耗费了好久才弄明白,

其实我当时直接用下面的方法,把请求头全部打印出来即可,下面就能打印出所有的请求头信息,包括了natapp的的ip地址(哎,还是自己太菜啊,其实当时有想过可能是他的问题,就是没有法子就证实,

一直以为是nginx的配置的问题,纠结了好久)

以上代码,嵌入到控制器方法中,要求 方法有参为 HttpServletRequest request

//获取所有请求头名称
        Enumeration<String> headerNames = request.getHeaderNames();
        while (headerNames.hasMoreElements()) {
            String name = headerNames.nextElement();
            //根据名称获取请求头的值
            String value = request.getHeader(name);
            System.out.println(name+"---"+value);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值