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 | 47 ++++++++++++++++++-----------------------------
1 files changed, 18 insertions(+), 29 deletions(-)
diff --git a/websocketSerivce/src/main/java/org/example/util/IpAddressUtil.java b/websocketSerivce/src/main/java/org/example/util/IpAddressUtil.java
index 533ac69..08ebdf0 100644
--- a/websocketSerivce/src/main/java/org/example/util/IpAddressUtil.java
+++ b/websocketSerivce/src/main/java/org/example/util/IpAddressUtil.java
@@ -11,11 +11,9 @@
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.InetAddress;
-import java.net.NetworkInterface;
-import java.net.URL;
+import java.net.*;
import java.nio.charset.StandardCharsets;
+import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@@ -37,30 +35,21 @@
* 获取IP地址:
*/
public static String getIpAddress(HttpServletRequest request) {
- String ipAddress = null;
- try {
- ipAddress = request.getHeader("X-Forwarded-For");
- if (ipAddress != null && ipAddress.length() != 0 && !"unknown".equalsIgnoreCase(ipAddress)) {
- // 多次反向代理后会有多个ip值,第一个ip才是真实ip
- if (ipAddress.contains(",")) {
- ipAddress = ipAddress.split(",")[0];
- }
- }
- if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
- ipAddress = request.getHeader("Proxy-Client-IP");
- }
- if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
- ipAddress = request.getHeader("WL-Proxy-Client-IP");
- }
- if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
- ipAddress = request.getHeader("HTTP_CLIENT_IP");
- }
- if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
- ipAddress = request.getRemoteAddr();
- }
- } catch (Exception e) {
- log.error("获取IP地址异常,{}", e.getMessage());
+ // 获取客户端真实 IP 地址
+ String ipAddress = request.getHeader("X-Forwarded-For");
+
+ if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
+ ipAddress = request.getHeader("Proxy-Client-IP");
}
+
+ 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;
}
@@ -239,8 +228,8 @@
public static void main(String[] args) {
- String ip = "183.162.252.0";// 国内IP
- String abroadIp = "48.119.248.100"; // 国外IP
+ String ip = "26.26.26.1";// 国内IP
+ String abroadIp = "26.26.26.1"; // 国外IP
System.out.println("方法一(国内):" + getIpPossessionByFile(ip));
System.out.println("方法二(国内):" + getCityInfoByVectorIndex(ip));
--
Gitblit v1.9.3