某些情况下需要或取用户客户端的ip,用来统计或者拦截,比如有些网站是需要屏蔽海外ip的访问的,这就需要获取客户端的访问ip。一般情况下用HttpServletRequest对象的getRemoteAddr()方法即可获取。但是当请求经过HTTP代理或反向代理(如ngrok、nginx等)后这样获取ip是不正确的,这有点类似于跳板机。服务经过反向代理后拿到的IP已经不是"第一层"IP了,而是代理服务器这个"中介"的IP了,有时候甚至存在多级反向代理,那这个时候如何准确的获取客户端的IP呢?原来在存在代理的情况下,请求头会加上一些特定信息,如:某些情况下需要或取用户客户端的ip,用来统计或者拦截,比如有些网站是需要屏蔽海外ip的访问的