Spring Boot获取客户端的IP地址
在Spring Boot应用中,你可以通过HttpServletRequest
对象来获取客户端的IP地址。以下是一个简单的示例:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RestController
public class IPController {
@RequestMapping("/get-client-ip")
public String getClientIP(HttpServletRequest request) {
String remoteAddr = "";
if (request != null) {
remoteAddr = request.getHeader("X-FORWARDED-FOR");
if (remoteAddr == null || "".equals(remoteAddr)) {
remoteAddr = request.getRemoteAddr();
}
}
return remoteAddr;
}
}
在这个例子中,我们首先尝试从X-FORWARDED-FOR
头部获取IP地址,这是因为客户端可能位于HTTP代理之后。如果X-FORWARDED-FOR
不可用,我们则直接从HttpServletRequest
的getRemoteAddr()
方法获取IP地址。
请注意,获取到的IP地址可能是代理服务器的地址,而不是最终用户的直接地址,这取决于你的网络架构和代理设置。
评论已关闭