java web 通過request獲取客戶端IP
/**
* 獲取使用者真實IP地址,不使用request.getRemoteAddr();的原因是有可能使用者使用了代理軟體方式避免真實IP地址,
*
* 可是,如果通過了多級反向代理的話,X-Forwarded-For的值並不止一個,而是一串IP值,究竟哪個才是真正的使用者端的真實IP呢?
* 答案是取X-Forwarded-For中第一個非unknown的有效IP字串。
*
* 如:X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130,
* 192.168.1.100
*
* 使用者真實IP為: 192.168.1.110
*
* @param request
* @return
*/
public static String getIpAddress(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
相關文章
- Django透過request獲取客戶端IPDjango客戶端
- java 獲取客戶端真實ipJava客戶端
- java獲取客戶端ip和macJava客戶端Mac
- pomelo獲取客戶端IP客戶端
- c# 獲取客戶端IPC#客戶端
- 獲取客戶端真實IP客戶端
- Java面試題-如何獲取客戶端真實IPJava面試題客戶端
- .net 獲取客戶端真實ip客戶端
- JSF/JAVA 根據IP獲取客戶端Mac地址JSJava客戶端Mac
- 一次獲取客戶端 IP 記錄客戶端
- 伺服器獲取真實客戶端 IP伺服器客戶端
- 服務端如何獲取客戶端請求IP地址服務端客戶端
- ASP.NET獲取客戶端IP及MAC地址ASP.NET客戶端Mac
- JS獲取客戶端IP地址與機器名JS客戶端
- 在SelfHost專案中獲取客戶端IP地址客戶端
- Nginx 反向代理後如何獲取真實客戶端 IPNginx客戶端
- 獲取SQL Server中連線的客戶端IP地址SQLServer客戶端
- Silverlight中利用WCF獲取客戶端IP客戶端
- 在OwinSelfHost專案中獲取客戶端IP地址客戶端
- 獲取客戶端Mac地址客戶端Mac
- Spring 客戶端 IP 地址獲取及儲存細節Spring客戶端
- 阿里雲CDN + nginx多級代理獲取客戶端IP阿里Nginx客戶端
- nginx反向代理獲取客戶端的真實IP和域名Nginx客戶端
- nginx多級代理下如何獲取客戶端真實IPNginx客戶端
- 在容器服務中獲取客戶端真實源 IP客戶端
- Nacos - 客戶端例項列表獲取客戶端
- 乾貨:不同場景容器內獲取客戶端源IP的方法客戶端
- ABP vNext 審計日誌獲取真實客戶端IP客戶端
- asp.net 獲取客戶端瀏覽器訪問的IP地址ASP.NET客戶端瀏覽器
- 深入分析幾種PHP獲取客戶端IP的情況轉PHP客戶端
- 【知識積累】伺服器端獲取客戶端的IP地址(當客戶端呼叫由Axis開發的WebService)伺服器客戶端Web
- javascript獲取客戶端ip地址省市和運營商程式碼例項JavaScript客戶端
- PHP獲取客戶端、PHP獲取伺服器相關資訊PHP客戶端伺服器
- 從刷票瞭解如何獲得客戶端IP客戶端
- 在Intranet中獲得客戶端IP地址客戶端
- 通過web url獲取檔案資訊Web
- 獲得客戶端ip的方法,排除代理伺服器客戶端伺服器
- Jaeger的客戶端取樣配置(Java版)客戶端Java