获取访问用户的客户端IP(适用于公网与局域网).
2015-10-23 11:13
423 查看
/**
* 获取访问用户的客户端IP(适用于公网与局域网).
*/
public final String getIpAddr(final HttpServletRequest request)
throws Exception {
if (request == null) {
throw (new Exception("getIpAddr method HttpServletRequest Object is null"));
}
String ipString = request.getHeader("x-forwarded-for");
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getHeader("Proxy-Client-IP");
}
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getHeader("WL-Proxy-Client-IP");
}
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getRemoteAddr();
}
// 多个路由时,取第一个非unknown的ip
final String[] arr = ipString.split(",");
for (final String str : arr) {
if (!"unknown".equalsIgnoreCase(str)) {
ipString = str;
break;
}
}
return ipString;
}
* 获取访问用户的客户端IP(适用于公网与局域网).
*/
public final String getIpAddr(final HttpServletRequest request)
throws Exception {
if (request == null) {
throw (new Exception("getIpAddr method HttpServletRequest Object is null"));
}
String ipString = request.getHeader("x-forwarded-for");
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getHeader("Proxy-Client-IP");
}
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getHeader("WL-Proxy-Client-IP");
}
if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {
ipString = request.getRemoteAddr();
}
// 多个路由时,取第一个非unknown的ip
final String[] arr = ipString.split(",");
for (final String str : arr) {
if (!"unknown".equalsIgnoreCase(str)) {
ipString = str;
break;
}
}
return ipString;
}
相关文章推荐
- Leetcode NO.270 Closest Binary Search Tree Value
- 1.冒泡排序
- Web service - current time zone for a city?
- 不要滥用UNLOGGED table 和 hash index
- 2015/10/23 回顾
- 虚拟机磁盘 centos 扩展空间
- 深入理解jQuery.css和jQuery.style源码
- JAVA EL表达式详细介绍使用手册
- LoadRunner下载文件脚本
- Loadrunner的自定义监控器
- LoadRunner常见函数分析
- LoadRunner如何监控Tomcat性能
- Android 版本自动更新
- 企业网站首页结构布局几点心得感悟
- Leetcode || Reverse Integer
- 特殊的排序(思维好题)
- vs2010汇编开发环境搭建
- 一些容易出错的细节
- Javascript规范
- linux使用top命令查看系统状态