private static String getIp(HttpServletRequest request){ String ip =request.getHeader("x-forwarded-for"); if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)){ if (ip.indexOf(",") != -1){ ip
时间: 2024-04-13 16:30:54 浏览: 97
IP工具类,通过传入的request获取ip地址(JAVA)
是一个字符串,可能包含多个IP地址,以逗号分隔。在这种情况下,我们通常只需要获取第一个IP地址作为客户端的真实IP地址。要实现这个功能,我们可以使用以下代码:
```java
private static String getIp(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
if (ip.indexOf(",") != -1) {
// 多个IP地址,取第一个
ip = ip.substring(0, ip.indexOf(","));
}
}
return ip;
}
```
这段代码首先获取请求头中名为"x-forwarded-for"的值,该值表示客户端的原始IP地址。如果该值存在且不为"unknown",则判断是否包含逗号,如果包含则截取第一个IP地址作为真实IP地址返回。否则,直接返回该IP地址。
请注意,这种方式并不保证获取到的IP地址一定是客户端真实的IP地址,因为该值可以被伪造或篡改。在一些情况下,可能需要使用其他方式获取真实的IP地址,比如通过代理服务器的相关信息。
阅读全文