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獲取本機IPJava
- Java獲取本機ip地址Java
- 獲取使用者的真實ip
- java獲取本機的ip地址Java
- java Socket 獲取本地主機ipJava
- java獲取ip地址和mac地址JavaMac
- PHP 獲取使用者真實的ipPHP
- java 獲取客戶端真實ipJava客戶端
- java獲取客戶端ip和macJava客戶端Mac
- Java 中獲取MAC地址 和IP地址JavaMac
- 【Go】獲取使用者真實的ip地址Go
- 【Go】獲取使用者真實的 ip 地址Go
- php 獲取IPPHP
- js獲取使用者當前所在城市(ip)JS
- SAP中關於使用者IP資訊的獲取
- 如何獲取終端使用者的真實ip
- saltstack獲取IP地址
- 獲取IP地址方法
- 獲取網路卡 IP
- 獲取IP地址命令
- Java實現獲取本機Ip的工具類Java
- java web 通過request獲取客戶端IPJavaWeb客戶端
- 關於java獲取本地ip的幾種方法Java
- Linux下用Java獲取本機IP地址LinuxJava
- 在PHP中如何獲取使用者的真實IPPHP
- 獲取使用者訪問網站的IP來源網站
- js_原生js獲取當前的使用者ipJS
- Java面試題-如何獲取客戶端真實IPJava面試題客戶端
- 獲取外網出口ip
- 美國ip地址如何獲取?
- 根據ip獲取城市
- curl 獲取外網IP
- 獲取真實IP地址
- PHP獲取ip與ip所在城市PHP
- js依據ip獲取使用者當前所在城市JS
- 如何獲取外網IP和IP的資訊
- Java獲取本機名稱、本機MAC地址、IP地址JavaMac
- JSF/JAVA 根據IP獲取客戶端Mac地址JSJava客戶端Mac