IP解析工具类
来源:互联网 发布:美猎推荐 知乎 编辑:程序博客网 时间:2024/05/29 18:00
package com.kitsmart.mm.util;
import javax.servlet.http.HttpServletRequest;
public class IPUtil {
public static String getIp2(HttpServletRequest request) {
String ip = request.getHeader("X-Forwarded-For");
if (StringUtil.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
// 多次反向代理后会有多个ip值,第一个ip才是真实ip
int index = ip.indexOf(",");
if (index != -1) {
return ip.substring(0, index);
} else {
return ip;
}
}
ip = request.getHeader("X-Real-IP");
if (StringUtil.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
return ip;
}
return request.getRemoteAddr();
}
public static String getIpAddr(HttpServletRequest request) {
if (null == request) {
return null;
}
String ip = null;
ip = request.getHeader("X-Forwarded-For");
if (StringUtil.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
// 多次反向代理后会有多个ip值,第一个ip才是真实ip
int index = ip.indexOf(",");
if (index != -1) {
return ip.substring(0, index);
} else {
return ip;
}
}
String proxs[] = { "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_CLIENT_IP", "HTTP_X_FORWARDED_FOR" };
for (String prox : proxs) {
ip = request.getHeader(prox);
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
continue;
} else {
break;
}
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
return request.getRemoteAddr();
}
return ip;
}
}
import javax.servlet.http.HttpServletRequest;
public class IPUtil {
public static String getIp2(HttpServletRequest request) {
String ip = request.getHeader("X-Forwarded-For");
if (StringUtil.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
// 多次反向代理后会有多个ip值,第一个ip才是真实ip
int index = ip.indexOf(",");
if (index != -1) {
return ip.substring(0, index);
} else {
return ip;
}
}
ip = request.getHeader("X-Real-IP");
if (StringUtil.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
return ip;
}
return request.getRemoteAddr();
}
public static String getIpAddr(HttpServletRequest request) {
if (null == request) {
return null;
}
String ip = null;
ip = request.getHeader("X-Forwarded-For");
if (StringUtil.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
// 多次反向代理后会有多个ip值,第一个ip才是真实ip
int index = ip.indexOf(",");
if (index != -1) {
return ip.substring(0, index);
} else {
return ip;
}
}
String proxs[] = { "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_CLIENT_IP", "HTTP_X_FORWARDED_FOR" };
for (String prox : proxs) {
ip = request.getHeader(prox);
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
continue;
} else {
break;
}
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
return request.getRemoteAddr();
}
return ip;
}
}
0 0
- IP解析工具类
- Ip地址解析工具类
- 自动解析IP地址工具
- IP工具类
- PING ip 工具类
- Java ip工具类
- ip获取工具类
- java工具类,来解析公网ip所属的地区和各种信息
- ip处理工具类IPUtil
- IP工具类v1.0
- 获取Ip的工具类
- IP常用操作工具类
- 获取IP工具类IPGetUtil
- 获取机器IP工具类
- 获取ip的工具类
- XML 解析工具类
- xml解析工具类
- JSON解析工具类
- 对js闭包例子的理解
- db2 备份序列
- App Bar 点击返回按钮自动返回上一个指定的Activity
- iOS开发svnserver的搭建
- iOS应用性能调优的25个技巧
- IP解析工具类
- BZOJ_P1007&Codevs_P2324 [HNOI2008]水平可见直线(计算几何+单调栈)
- HDU2717 Catch That Cow (BFS)
- Android中onSaveInstanceState注意事项
- JSP中内置对象的getAttribute()和getParameter()
- Android群英传之Android绘图机制与处理技巧
- 开发自定义控件的步骤
- Android应用主题动态切换
- Stimulsoft.Report 2、 web报表的使用