gpt4 book ai didi

java - 如何在Servlet请求中获取客户端系统IP地址

转载 作者:行者123 更新时间:2023-12-01 06:07:32 26 4
gpt4 key购买 nike

    @GET
@Produces(MediaType.APPLICATION_JSON)
public Response login(@Context HttpHeaders headers, @Context HttpServletRequest request) {
System.out.println(getClientIpAddress(request));
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
System.out.println("ip:" + ipAddress);
return new LoginUtils().performLogin(headers.getRequestHeaders());
}

public static String getClientIpAddress(HttpServletRequest request) {
for (String header : HEADERS_TO_TRY) {
String ip = request.getHeader(header);
if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
return ip;
}
}
return request.getRemoteAddr();
}

但是我没有获取IP地址,我从每个请求中得到相同的127.0.0.1这个值,不同的系统可以告诉我如何获取Ip地址。

最佳答案

你可以这样做:

使 HttpServletRequest Autowired 可以在 Controller 的任何功能中使用:

@Autowired
private HttpServletRequest request;

然后在你的 Controller 中使用它,如下所示:

 String remoteAddr = request.getRemoteAddr();
String localAddres = request.getLocalAddr();

关于java - 如何在Servlet请求中获取客户端系统IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41378471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com