当前位置:网站首页>获取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;
}
}
边栏推荐
猜你喜欢
【uni-APP搭建项目】
三丁基-巯基膦烷「tBuBrettPhos Pd(allyl)」OTf),1798782-17-8
OSI的分层特点、传输过程与三次握手、四次挥手、tcp与udp包头的描述
软件开发的最大的区别是什么?
CobalStrike(CS)基础超级详细版
Interface test practice | Detailed explanation of the difference between GET / POST requests
Shenzhen Offline Registration|StarRocks on AWS: How to conduct rapid and unified analysis of real-time data warehouses
工程制图-齿轮
接口测试如何准备测试数据
【Harmony OS】【FAQ】鸿蒙问题合集1
随机推荐
索引创建、删除与使用
【翻译】开发与生产中的Kubernetes修复成本对比
redis键值出现 xacxedx00x05tx00&的解决方法
How to prepare for the test interface test data
WebSocket的实际应用
接口测试如何准备测试数据
v-on指令:为元素绑定事件
在线密码生成工具推荐
I ported GuiLite to STM32F4 board
「短视频+社交电商」营销模式爆发式发展,带来的好处有什么?
【HMS core】【Ads Kit】华为广告——海外应用在国内测试正式广告无法展示
Jmeter 模拟多用户登录的两种方法
接口管理工具YApi怎么用?颜值高、易管理、超好用
12.机器学习基础:评估机器学习模型
OSI的分层特点、传输过程与三次握手、四次挥手、tcp与udp包头的描述
online test paper concept
数值类型转换02
MCM箱模型建模方法及大气O3来源解析
好消息!北京、珠海PMP考试时间来啦
Two ways to simulate multi-user login in Jmeter