打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
IPUtils —— 得到访客真实IP地址的工具类
package com.huacai.web.client.util;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;

public final class IPUtils {
/** 默认空值 */
private static final String EMPTY = "-";
/**
* 得到访客真实IP地址
*/
public static String getRemoteTrueIp(HttpServletRequest request) {
String remote_ip = EMPTY;
// 1.首先判断是否有CDN头部
remote_ip = request.getHeader("Cdn-Src-Ip");
if(StringUtils.isNotEmpty(remote_ip) && !"unknown".equalsIgnoreCase(remote_ip) && !EMPTY.equals(remote_ip)){
return remote_ip;
}
// 2.其次判断是否有代理
remote_ip = request.getHeader("x-forwarded-for");
if(StringUtils.isNotEmpty(remote_ip) && !"unknown".equalsIgnoreCase(remote_ip) && !EMPTY.equals(remote_ip)){
String[] ips = remote_ip.split("\\,");
// 2.1 如果存在多级代理则只去第一个
if (ips != null && ips.length > 1) {
remote_ip = ips[0];
}
return remote_ip;
}
// 3.都没有则正常取得访客IP
remote_ip = request.getRemoteAddr();
if(StringUtils.isNotEmpty(remote_ip) && !"unknown".equalsIgnoreCase(remote_ip) && !EMPTY.equals(remote_ip)) {
return remote_ip;
}
// 4.都找不到直接返回
return remote_ip;
}

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
java根据ip获取经纬度城市地址
排名Top 16的Java实用类库
StringUtils工具类的使用--JavaEE开源博客-阿Q
public class IpUtils 获取真实IP
什么是拦截器?拦截器如何配置?
解决使用了nginx获取IP地址都是127.0.0.1 的问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服