Java如何获取请求的ip 地址?

1:来上代码

@AnnotationForTest()
@RestController
@RequestMapping("/test")
public class TestController {
    @GetMapping("/test")
    public Result type(HttpServletRequest request){
        String ipAddress = getIpAddress(request);
        return new Result(ResultCode.SUCCESS,ipAddress);
    }
    public static String getIpAddress(HttpServletRequest request) {
        String ip = request.getHeader("x-forwarded-for");
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_CLIENT_IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        return ip;
    }

}

2:测试结果

posted @ 2023-02-08 10:22  wode林夕  阅读(425)  评论(0编辑  收藏  举报  来源