首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

干货:Java正确获取客户端真实IP方法整理

在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。...如果使用了反向代理软件,将http://192.168.1.110:2046/的URL反向代理为http://www.abc.com/的URL时,用request.getRemoteAddr()方法获取的...http://192.168.1.110:2046/index.jsp,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过request.getRemoteAddr...或等于"unknown",那么: ip = request.getHeader("X-Real-IP") 6)如果该值为空或数组长度为0或等于"unknown",那么: ip = request.getRemoteAddr...如果一些对客户端校验较严格的应用(比如投票)要获取客户端ip,应该直接使用ip=request.getRemoteAddr(),虽然获取到的可能是代理的ip而不是客户端的ip,但这个获取到的ip基本上是不可能伪造的

3.7K160

【Nginx】如何获取客户端真实IP、域名、协议、端口?看这一篇就够了!

Nginx反向代理后,Servlet应用通过request.getRemoteAddr()取到的IP是Nginx的IP地址,并非客户端真实IP,通过request.getRequestURL()获取的域名...此时,再试一下request.getRemoteAddr()和request.getRequestURL()的输出结果: RemoteAddr: 127.0.0.1 URL: http://192.168.1.100...(); fromSource = "request.getRemoteAddr"; } return ip; } 这种方式虽然能够获取客户端的IP地址,但是我总感觉这种方式不太友好...,因为既然Servlet API提供了request.getRemoteAddr()方法获取客户端IP,那么无论有没有用反向代理对于代码编写者来说应该是透明的。...//192.168.1.100/test测试,结果: RemoteAddr: 192.168.1.100 URL: http://192.168.1.100/test 此时可发现通过request.getRemoteAddr

4.7K50

Java 实战系列·获取请求 IP 地址

获取请求 IP 地址 在 Spring 中,获取客户端真实 IP 地址的方法是 request.getRemoteAddr(),这种方法在大部分情况下都是有效的,但是在通过了 Squid 等反向代理软件就无法工作...如果使用了反向代理软件,将 http://192.168.1.110:2046/ 的 URL 反向代理为 http://www.abc.com/ 的 URL 时,用request.getRemoteAddr...其实并不是我们浏览器真正访问到了服务器上,而是先由代理服务器去访问 http://192.168.1.110:2046,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问真实服务器,所以通过 request.getRemoteAddr...ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getRemoteAddr...如果一些对客户端校验较严格的应用(比如投票)要获取客户端 ip,应该直接使用 request.getRemoteAddr(),虽然获取到的可能是代理的 ip 而不是客户端的 ip,但这个获取到的 ip

8.2K10
领券