当前位置:网站首页>获取Ip工具类
获取Ip工具类
2022-08-03 04:35:00 【Dzooooone_】
public class IPUtil {
public static String getIpAddress(HttpServletRequest request) {
String ipAddress = request.getHeader("x-forwarded-for");
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
if (ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")) {
// 根据网卡取本机配置的IP
InetAddress inet = null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ipAddress = inet.getHostAddress();
}
}
// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length() = 15
if (ipAddress.indexOf(",") > 0) {
ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
}
}
return ipAddress;
}
}
边栏推荐
- 2022河南萌新联赛第(四)场:郑州轻工业大学 E - 睡大觉
- 2022河南萌新联赛第(四)场:郑州轻工业大学 G - 迷宫
- MySQL 删除表数据,重置自增 id 为 0 的两个方式
- mysql bool盲注
- 3.张量运算
- The flink sql task is changed, and after adding several fields to the sql, an error occurs when restoring from the previously saved savepoint.
- Problems that need to be solved for interrupting the system
- Shenzhen Offline Registration|StarRocks on AWS: How to conduct rapid and unified analysis of real-time data warehouses
- 接口测试框架实战(二)| 接口请求断言
- 自考六级雅思托福备战之路
猜你喜欢

Bubble sort in c language structure

测试人员的价值体现在哪里

Kotlin-Flow common encapsulation class: the use of StateFlow

【Harmony OS】【ARK UI】ETS 上下文基本操作

我将GuiLite移植到了STM32F4开发板上

DFS's complement to pruning

多肽介导PEG磷脂——靶向功能材料之DSPE-PEG-RGD/TAT/NGR/APRPG

DDL操作数据库、表、列

打破传统电商格局,新型社交电商到底有什么优点?

记录一些遇见的bug——mapstruct和lombok同时使用时,转换实体类时数据丢失问题
随机推荐
接口管理工具YApi怎么用?颜值高、易管理、超好用
path development介绍
在线密码生成工具推荐
自组织是管理者和成员的双向奔赴
【Harmony OS】【FAQ】鸿蒙问题合集1
13.机器学习基础:数据预处理与特征工程
移动流量的爆发式增长,社交电商如何选择商业模式
WinForm的控件二次开发
社交电商如何做粉丝运营?云平台怎么选择商业模式?
「短视频+社交电商」营销模式爆发式发展,带来的好处有什么?
【Harmony OS】【ArkUI】ets开发 图形与动画绘制
Dialog manager in the fourth chapter: the dialog message loop
Online password generator tool recommendation
荧光标记多肽FITC/AMC/FAM/Rhodamine/TAMRA/Cy3/Cy5/Cy7-Peptide
Concepts and Methods of Exploratory Testing
测开:项目管理模块-项目curd开发
私域流量时代来临,电商企业如何布局?
10.预测房价:回归问题
工程制图点的投影练习
MySQL 出现 The table is full 的解决方法