czt
2025-11-29 46adcbf7494340a495539708210bb39110bdc33b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.fzzy.igds.utils;
 
import javax.servlet.http.HttpServletRequest;
 
/**
 * @Description 获取客户登陆信息
 * @Author CZT
 * @Date 2025/11/29 11:02
 */
public class SystemUtil {
 
    /***
     * 获取客户端IP地址
     * @param request
     */
    public static String getIP(HttpServletRequest request) {
        if (request == null) {
            return "127.0.0.1";
        }
        String ip = request.getHeader("X-Real-IP");
        if (ip != null && !"".equals(ip) && !"unknown".equalsIgnoreCase(ip)) {
            return ip;
        }
        ip = request.getHeader("X-Forwarded-For");
        if (ip != null && !"".equals(ip) && !"unknown".equalsIgnoreCase(ip)) {
            // 多次反向代理后会有多个IP值,第一个为真实IP。
            int index = ip.indexOf(',');
            if (index != -1) {
                return ip.substring(0, index);
            } else {
                return ip;
            }
        } else {
            return request.getRemoteAddr();
        }
    }
}