mirror of
https://github.com/dataease/dataease.git
synced 2026-05-21 04:00:55 +08:00
feat: 可视化资源支持显示水印
This commit is contained in:
54
sdk/common/src/main/java/io/dataease/utils/IPUtils.java
Normal file
54
sdk/common/src/main/java/io/dataease/utils/IPUtils.java
Normal file
@@ -0,0 +1,54 @@
|
||||
package io.dataease.utils;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class IPUtils {
|
||||
|
||||
private static final String HEAD_KEYS = "x-forwarded-for, Proxy-Client-IP, WL-Proxy-Client-IP";
|
||||
|
||||
private static final String UNKNOWN = "unknown";
|
||||
|
||||
private static final String LOCAL_IP_KEY = "0:0:0:0:0:0:0:1";
|
||||
private static final String LOCAL_IP_VAL = "127.0.0.1";
|
||||
|
||||
public static String get() {
|
||||
|
||||
String ipStr = null;
|
||||
boolean isProxy = false;
|
||||
|
||||
HttpServletRequest request = null;
|
||||
try {
|
||||
request = ServletUtils.request();
|
||||
} catch (Exception e) {
|
||||
LogUtil.error(e.getMessage(), e);
|
||||
return null;
|
||||
}
|
||||
String[] keyArr = HEAD_KEYS.split(",");
|
||||
for (String key : keyArr) {
|
||||
String header = request.getHeader(key.trim());
|
||||
if (StringUtils.isNotBlank(header) && !StringUtils.equalsIgnoreCase(UNKNOWN, header)) {
|
||||
ipStr = header;
|
||||
isProxy = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isProxy) {
|
||||
ipStr = request.getRemoteAddr();
|
||||
}
|
||||
ipStr = Arrays.stream(ipStr.split(",")).filter(item -> StringUtils.isNotBlank(item) && !StringUtils.equalsIgnoreCase(UNKNOWN, item.trim())).findFirst().orElse(ipStr);
|
||||
return StringUtils.equals(LOCAL_IP_KEY, ipStr) ? LOCAL_IP_VAL : ipStr;
|
||||
}
|
||||
|
||||
public static String domain() {
|
||||
try {
|
||||
return InetAddress.getLocalHost().getHostAddress();
|
||||
} catch (Exception e) {
|
||||
return LOCAL_IP_VAL;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user