java获取真实的请求接口ip地址
时间: 2023-02-11 22:40:19 浏览: 330
在Java程序中获取请求的真实IP地址可以使用以下方法:
1. 使用javax.servlet.http.HttpServletRequest类中的getRemoteAddr()方法,这个方法可以获取请求的IP地址。
2. 可以检查X-Forwarded-For,如果请求是通过代理服务器发送的,那么X-Forwarded-For将包含被代理客户端的IP地址。可以使用HttpServletRequest类中的getHeader()方法来获取请求头中的X-Forwarded-For信息。
代码示例:
```java
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();
}
```
注意:如果有多个代理服务器,X-Forwarded-For中将会包含多个IP地址,它们之间用逗号分隔。
阅读全文