0
点赞
收藏
分享

微信扫一扫

Java获取请求者的真实ip地址

在Java中,可以通过HttpServletRequest对象的getRemoteAddr()方法获取请求者的真实IP地址。以下是一个简单的示例:

import javax.servlet.http.HttpServletRequest;


public String getRealIpAddress(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.getHeader("HTTP_CLIENT_IP");
    }

    if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
        ipAddress = request.getHeader("HTTP_X_FORWARDED_FOR");
    }

    if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
        ipAddress = request.getRemoteAddr();
    }

    return ipAddress;
}

在这个示例中,我们首先尝试从请求头中获取代理服务器转发的客户端IP地址(X-Forwarded-For),如果没有找到,则依次尝试获取其他可能包含客户端IP地址的请求头字段。如果所有请求头字段都没有找到客户端IP地址,最后使用HttpServletRequest对象的getRemoteAddr()方法获取请求者的IP地址。

举报

相关推荐

0 条评论