From edaa364ccc37fe5372bca577482dd5d7142425cd Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Mon, 05 Aug 2024 18:30:53 +0800
Subject: [PATCH] 1
---
websocketSerivce/src/main/java/org/example/util/IpAddressUtil.java | 31 +++++++++++++++----------------
1 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/websocketSerivce/src/main/java/org/example/util/IpAddressUtil.java b/websocketSerivce/src/main/java/org/example/util/IpAddressUtil.java
index 152b88b..08ebdf0 100644
--- a/websocketSerivce/src/main/java/org/example/util/IpAddressUtil.java
+++ b/websocketSerivce/src/main/java/org/example/util/IpAddressUtil.java
@@ -35,23 +35,22 @@
* 获取IP地址:
*/
public static String getIpAddress(HttpServletRequest request) {
- try {
- Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
- while (interfaces.hasMoreElements()) {
- NetworkInterface networkInterface = interfaces.nextElement();
- Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
- while (addresses.hasMoreElements()) {
- InetAddress address = addresses.nextElement();
- if (!address.isSiteLocalAddress() && !address.isLoopbackAddress() && address instanceof Inet4Address) {
- System.out.println("External IP: " + address.getHostAddress());
- return address.getHostAddress();
- }
- }
- }
- } catch (SocketException e) {
- e.printStackTrace();
+ // 获取客户端真实 IP 地址
+ String ipAddress = request.getHeader("X-Forwarded-For");
+
+ if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
+ ipAddress = request.getHeader("Proxy-Client-IP");
}
- return null;
+
+ if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
+ ipAddress = request.getHeader("WL-Proxy-Client-IP");
+ }
+
+ if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
+ ipAddress = request.getRemoteAddr();
+ }
+
+ return ipAddress;
}
/**
--
Gitblit v1.9.3