Java獲取使用者IP
/**
* 獲取訪問者IP
*
* 在一般情況下使用Request.getRemoteAddr()即可,但是經過nginx等反向代理軟體後,這個方法會失效。
*
* 本方法先從Header中獲取X-Real-IP,如果不存在再從X-Forwarded-For獲得第一個IP(用,分割),
* 如果還不存在則呼叫Request .getRemoteAddr()。
*
* @param request
* @return
*/
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("X-Real-IP");
if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
return ip;
}
ip = request.getHeader("X-Forwarded-For");
if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
// 多次反向代理後會有多個IP值,第一個為真實IP。
int index = ip.indexOf(`,`);
if (index != -1) {
return ip.substring(0, index);
} else {
return ip;
}
} else {
return request.getRemoteAddr();
}
}
相關文章
- java獲取本機的ip地址Java
- PHP 獲取使用者真實的ipPHP
- 【Go】獲取使用者真實的ip地址Go
- 【Go】獲取使用者真實的 ip 地址Go
- js獲取使用者當前所在城市(ip)JS
- saltstack獲取IP地址
- Java實現獲取本機Ip的工具類Java
- java web 通過request獲取客戶端IPJavaWeb客戶端
- js_原生js獲取當前的使用者ipJS
- js依據ip獲取使用者當前所在城市JS
- 獲取外網出口ip
- Java面試題-如何獲取客戶端真實IPJava面試題客戶端
- jQuery獲取本機ip地址jQuery
- 獲取Linux本機IP命令Linux
- 如何獲取海外住宅IP地址?
- 獲取手機外網IP
- python如何獲取本機ipPython
- 美國ip地址如何獲取?
- python爬蟲從ip池獲取隨機IPPython爬蟲隨機
- c# 獲取客戶端IPC#客戶端
- 獲取客戶端真實IP客戶端
- 根據 IP 獲取省市名稱
- 使用 geoip2/geoip2,如何獲取真實使用者 IP 地址
- .net 獲取客戶端真實ip客戶端
- 什麼是自動獲取IP地址
- 如何使用 Go 獲取你的 IP 地址Go
- 如何設定自動獲取ip地址
- cocos-lua 獲取IP 歸屬地
- w10如何設定自動獲取ip地址_w10怎麼自動獲取ip地址
- 獲取IP地址的途徑有哪些?要如何保護IP地址不被竊取?
- 前端Js獲取本網IP和外網IP方法總彙前端JS
- 2020年使用者獲取指南
- Oracle中獲取主機名和IP地址Oracle
- 獲取pytdx行情伺服器ip和port伺服器
- spring boot 獲取客戶端ip資訊Spring Boot客戶端
- .NET CORE WEBAPI 後端獲取來源IPWebAPI後端
- Django透過request獲取客戶端IPDjango客戶端
- laravel symfony request獲取真實ip的坑Laravel