Skip to content

Commit 1663ad4

Browse files
committed
获取客户端真实的IP
1 parent 3a84c9f commit 1663ad4

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

Java_Request_GetIP/README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
###获取客户端真实的IP地址
2+
3+
```Java
4+
5+
/**
6+
*
7+
* @description:获取客户端真实IP
8+
* @param request
9+
* @return
10+
*/
11+
public static String getIpAddr(HttpServletRequest request)
12+
{
13+
14+
if (request == null)
15+
{
16+
return "";
17+
}
18+
String ip = request.getHeader("x-forwarded-for");
19+
20+
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
21+
{
22+
ip = request.getHeader("Proxy-Client-IP");
23+
}
24+
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
25+
{
26+
ip = request.getHeader("WL-Proxy-Client-IP");
27+
}
28+
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
29+
{
30+
ip = request.getRemoteAddr();
31+
}
32+
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
33+
{
34+
ip = request.getHeader("http_client_ip");
35+
}
36+
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
37+
{
38+
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
39+
}
40+
// 如果是多级代理,那么取第一个ip为客户ip
41+
if (ip != null && ip.indexOf(",") != -1)
42+
{
43+
ip = ip.substring(ip.lastIndexOf(",") + 1, ip.length()).trim();
44+
}
45+
return ip;
46+
}
47+
```

0 commit comments

Comments
 (0)