我正在尝试找到一种 Java 方法,该方法可以获取 ServletRequest 并找到该请求的 IP 地址。我找到了类似这种方法的方法,但会收到 ServletRequest 而不是 HTTPServletRequest :
问问题
2391 次
2 回答
1
ServletRequest 还提供了有关详细信息的方法,java.lang.String getRemoteAddr()
请参见https://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRemoteAddr() 。
于 2018-06-05T15:00:05.737 回答
1
我会检查请求是否是 HTTP 请求,如果是,请使用另一个问题中提出的方法。否则,我会getRemoteAddr()
盲目相信这种方法。
if (request instanceof HTTPServletRequest) {
HTTPServletRequest httpRequest = (HTTPServletRequest) request;
// read X-Forwarded-For header, etc. etc.
} else {
ip = request.getRemoteAddr();
}
于 2018-06-05T15:10:37.607 回答