访问Spring 3 MVC Web应用程序中的请求源IP

Nic*_*men 8 spring controller spring-mvc

在解析@Controller中的请求时,Spring 3 MVC中是否有任何方法可以访问请求头信息(如源IP地址等)?

rus*_*lan 37

您可以从中检索它HttpServletRequest,getRemoteAddr()用于访问用户IP地址并getHeader()获取标头值.

例如

@Controller
public class MyController {
    @RequestMapping(value="/do-something")
    public void doSomething(HttpServletRequest request) {
        final String userIpAddress = request.getRemoteAddr();
        final String userAgent = request.getHeader("user-agent");
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以将其他参数传递给doSomething()方法,例如模型或请求参数.

  • 如果客户端在代理服务器之后,则可能的解决方案是使用`String ip = req.getHeader("X-FORWARDED-FOR");` (4认同)