在GWT和Google App Engine中获取客户端IP地址的Java代码

bluesky1年前 ⋅ 152 阅读

ChatGPT的回答仅作参考:

在GWT和Google App Engine中获取客户端IP地址的Java代码如下:

```java
import javax.servlet.http.HttpServletRequest;

public class IpAddressUtil {

    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.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;
    }
}
```

这个工具类尝试从多个HTTP请求头中获取客户端IP地址,如果都无法获取到,则返回远程地址。在GWT和Google App Engine中,可以通过HttpServletRequest对象获取客户端IP地址。

全部评论: 0

    相关推荐