java 从http请求中解析IP地址
时间: 2023-07-25 10:21:49 浏览: 100
在Java中,可以通过 HttpServletRequest 对象中的 getRemoteAddr() 方法来获取 HTTP 请求的远程 IP 地址。
具体操作如下:
```java
import javax.servlet.http.HttpServletRequest;
public class IPUtils {
public static String getIpAddress(HttpServletRequest request) {
String ipAddress = request.getHeader("x-forwarded-for");
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
}
return ipAddress;
}
}
```
上述代码中,getIpAddress() 方法接收一个 HttpServletRequest 对象作为参数,然后依次使用 request.getHeader() 方法获取 IP 地址。如果获取不到,则调用 request.getRemoteAddr() 方法获取 IP 地址。最后返回 IP 地址。
需要注意的是,在使用代理服务器时,客户端的 IP 地址可能会被篡改。因此,需要根据实际情况修改代码以获取正确的 IP 地址。
阅读全文