/*** * 获取客户端ip地址(可以穿透代理) * @param request * @return */ public static String getClientIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_CLUSTER_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_FORWARDED"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_VIA"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("REMOTE_ADDR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }
- 浏览: 1200953 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1027)
- 拼接字符串小技巧 (1)
- JAVA 模块知识小结 (23)
- Tools (14)
- Android (20)
- ExtJS必学必会 (1)
- Nginx (4)
- 中间件 (9)
- java中间件 (6)
- linux (47)
- 23种设计模式 (15)
- 数据库知识 (15)
- Mycat中间件 (80)
- 华为框架--jalor5 (2)
- 数据库-----DB2 (24)
- 数据库-----ORACLE (47)
- 数据库-----MYSQL (82)
- 大数据 (16)
- 大数据--HBASE (4)
- 大数据--Storm (9)
- 大数据--Hive (5)
- 大数据--Hadoop (11)
- 大数据--ElasticSearch (16)
- 大数据--ZooKeeper (13)
- 大数据--redis (17)
- 大数据--Kafka (26)
- 大数据--MongoDB (9)
- 大数据之Flume (4)
- 大数据--sqoop (3)
- 大数据--SPARK (7)
- 大数据--memcached (1)
- 大数据------Impala (1)
- 大数据--Avro (1)
- 大数据--Apache Pig (1)
- 大数据--Logstash (1)
- 大数据--Kibana 简介 (1)
- 大数据之Impala (1)
- 大数据之Druid-IO介绍 (1)
- 大数据之HUE (1)
- 大数据之Ambari (1)
- 大数据之Presto (1)
- 大数据之Oozie (1)
- 编程语言之Python (4)
- 编程语言--PHP (5)
- 编程语言--Scala (2)
- 编程语言--JAVA之Mybatis (26)
- 编程语言之Ruby (2)
- 编程语言之C (2)
- 编程语言--JAVA之Spring (7)
- 编程语言--JAVA之Struts (1)
- 编程语言JAVA Hibernate (6)
- 编程语言之Kotlin (1)
- 编程语言--JAVA之网络编程 (3)
- 编程语言之Go (3)
- 编程语言之Erlang (1)
- erlang语言 (1)
- 算法研究--查找 (8)
- 算法研究--排序 (10)
- 网络协议 (47)
- 版本控制工具 (6)
- JAVA基础知识 (20)
- 负载均衡 (14)
- Hessian (1)
- 阿里之RocketMQ (5)
- 阿里之Canal (2)
- 阿里之TDDL (1)
- 阿里之DRDS (1)
- 阿里Dubbo框架 (2)
- 阿里JStorm框架 (3)
- 阿里之yugong (2)
- 阿里之Druid框架 (3)
- 阿里之cobar (1)
- Docker (17)
- VPN虚拟专网 (1)
- JFinal (1)
- JAVA语言基础 (23)
- HAProxy简介 (5)
- Netty介绍 (1)
- Squid介绍 (1)
- ZeroMQ (1)
- JVM深入研究 (4)
- Kerberos (1)
- Shiro (1)
- R语言 (2)
- CAS (2)
- Spring Security (1)
- 虚拟化技术 (10)
- python (2)
- Wireshark (1)
- JAVA_WEB 开发 (6)
- I/O模型 (1)
- Apache Mina (1)
- Apache Solr (2)
- Apache Nutch (1)
- Apache nifi (1)
- Apache Phoenix (1)
- Apache Thrift (1)
- Apache --Groovy (2)
- Apache Tika (1)
- Apache JMeter (1)
- Apache 之CouchDB (1)
- Apache之XML-RPC (1)
- 读书笔记 (4)
- 统计分析系统--SAS (1)
- Java Applet (1)
- JAVA之XStream (1)
- java之FreeMarker (1)
- JAVA 之WebWork (1)
- JAVA之velocity 介绍 (1)
- JAVA之Excel的导入(出) (4)
- Node.js (1)
- 信息安全 (2)
- Flex 编程 (1)
- 大数据--Alluxio (1)
- Jenkins (1)
- XDoclet (1)
- Play 框架 (1)
- ESB (2)
- JAVA之SiteMesh (1)
- JAVA 之Tiles (1)
- JAVA之工作流系统 (5)
- Apache之Tajo (1)
- 搜索引擎知识 (1)
- Apache 之Chukwa (1)
- Apache 之 ActiveMQ (2)
- Apache 之Accumulo (1)
- Apache之Lucene (2)
- Apache S4 (2)
- Apache之Tez (1)
- Apache之TOMCAT (3)
- Apache Kylin (1)
- Apache 之Ivy (1)
- Apache之Mesos (1)
- Zenoss (1)
- 阿里妈妈-adhoc之mdrill (1)
- 分布式调用 (5)
- RPC之Zeroc ICE (3)
- Java之RMI (1)
- RPC框架之Apache-XML (1)
- 人工智能系统 (10)
- 构建工具Maven (6)
- 持续集成 (1)
- 缓存技术 (8)
- 数据库之SequoiaDB (1)
- 数据分析 (2)
- 自然语言处理 (10)
- 数据库----MariaDB (1)
- 压缩算法 (2)
- 消息队列之LMAX Disruptor (1)
- 分布式文件系统DFS (1)
- Kubernetes (1)
- 自动化部署框架 (2)
- 分布式文件系统Tachyon (1)
- OpenCV (1)
- 数据库--db4o (1)
- 任务调度--Azkaban (1)
- 消息队列 (3)
- Apache 之 Flink (1)
- 消息队列,StormMQ (1)
- 图形数据库 (1)
- Zuul (1)
- 网站加速 (1)
- CDN (1)
- 数据库之PostgreSQL (2)
- CQRS 命令查询职责分离模式 (1)
- CoreOS--ETCD (1)
- 工作流引擎--Snaker (1)
- HPCC (1)
- 数据库之Greenplum (1)
- 监控系统 (8)
- Neo4j (1)
- Apache之Calcite (1)
- 大数据分享 (4)
- 人工智能分享 (10)
- Apache 之Camel (1)
- Apache之 Crunch (1)
- 分布式缓存 (7)
- Apache 之Etch (1)
- Apache之 Karaf (1)
- Apache 之ODE (1)
- Eclipse安装插件 (1)
- Apache之Qpid (1)
- Apache 之Ranger (1)
- Apache 之Flink (1)
- Apache 之Lens (1)
- Apache之Zeppelin (1)
- Apache 之Mahout (1)
- Apache之 Samza (1)
- Apache 之VCL (1)
- Apache 之Synapse (1)
- Apache 之ORC (1)
- apache之Tapestry (1)
- 射频识别 (2)
- JAVA框架之spark (1)
- Web服务器 Tengine (1)
- web服务器之kangle (1)
- 全文检索 (1)
- Java开发框架之Ninja (1)
- Spring-Boot (2)
- 操作系统底层 (1)
- Java之Web框架Vert.x (1)
- JAVA之NIO框架 (1)
- CORBA (2)
- 敏感词过滤 (1)
- 前端语言 (18)
- 事处理务 (2)
- 网络爬虫 (1)
- 复杂SQL案例 (3)
- 经典理论 (1)
- 容器集群管理系统 (1)
- 代理服务器 (1)
- 微服务框架 (8)
- 编程语言--JAVA之Web (4)
- 存储知识 (2)
- 报表技术 (12)
- Tomcat专题研究 (7)
- 网络知识 (2)
- Web服务器 之WebLogic (2)
- 编程语言--JAVA之Email (5)
- Apache 之Velocity (1)
- java之Javassist (1)
- JAVA之工作流 (3)
- JAVA之Undertow (1)
- JAVA之Grizzly (1)
- java之Spray (1)
- JAVA之验证码 (8)
- JAVA之序列化 (1)
- JAVA 之RESTful (1)
- XML解析 (5)
- RPC框架之Motan (1)
- 数据库之ArangoDB (1)
- 【lanproxy】 (1)
- 【RPC框架之RPCX】 (1)
- RPC框架之gRPC (1)
- JavaWeb之G4Studio (1)
- 区块链 (1)
- Sphinx (1)
- 跟踪系统 (1)
- 多租户 (1)
- 大数据之数据采集应用 (2)
- JAVA 之文件操作 (10)
- 软件测试 (1)
- Apache 之DistributedLog (1)
- Apache 之 Ignite (1)
- 分布式配置中心 (1)
- 【SaaS 介绍】 (1)
- 【数据库之ArangoDB】 (1)
- 【数据处理之ETL】 (1)
- Undertow (1)
- JAX-RS (1)
- 【百度云消息推送】 (1)
- IOS (7)
- Kannel (1)
- ServiceComb (1)
- 微信 (2)
- 规则引擎 (1)
- 短地址 (1)
- Exam (1)
- FastDFS (1)
- Arthas (0)
- 阿里之Arthas (1)
- 阿里之Seata (1)
- 微服务 (1)
- 分布式事务 (1)
- Flink (2)
- Apache-Ranger (1)
- azkaban (1)
- Intellij Idea (1)
- Apache DolphinScheduler (3)
- PMP项目管理 (1)
- sentry介绍 (1)
- 堡垒机 (1)
- 对象存储服务简介 (1)
- prometheus (1)
- Hazelcast (1)
- dolphinscheduler (1)
- PMP (1)
- 数据库之ClickHouse (2)
- Telegraf (1)
- apache之Dolphinscheduler (1)
最新评论
-
gaojingsong:
jstl1point0 写道高级版本JDK可以直接安装不用配置 ...
【win7配置jdk 环境变量】 -
jstl1point0:
高级版本JDK可以直接安装不用配置了
【win7配置jdk 环境变量】 -
hdd901002:
光说明错误在哪里有什么用,解决方法啊。。。我也碰到了,一条jo ...
Mycat源码解读--错误之【can't find table define in schema 】 -
masuweng:
【JAVA之图片水印】 -
masuweng:
【JAVA之多线程下载文件实现】
发表评论
-
【属性值的各种数据类型转换】
2021-08-24 18:19 1066前提条件,先构造一个properties文件 ... -
PropertyUtils 文件解读
2021-08-24 18:14 957单例模式 ,静态代码块 /** * property ... -
【JDBC协议与驱动名称】
2021-08-24 09:17 996/** * driver */ public sta ... -
【JAVA之获取CPU/内存信息】
2021-08-20 16:06 1243代码 import org.junit.Test; ... -
【集合对象按照属性排序】
2021-08-16 18:21 991源码如下: import com.crcgas.dp.se ... -
【数据库性能统计】
2021-08-16 18:15 9161、工厂方法区分不同类型数据库 /** * get c ... -
【时间戳转日时分秒】
2021-08-12 10:54 1088public static String format2Du ... -
【@PostConstruct注解研究】
2021-08-11 17:35 405最近在研究源码的时候,碰到了一个自己没有见到的注解,经过研究 ... -
【List伪分页代码】
2021-08-05 11:12 4151、自定义分页 请求参数: @PathVariab ... -
【JAVA 之简化工具Lombok】
2019-05-03 17:17 710Project Lombok is a java libr ... -
【JAVA之反射方法的应用】
2018-11-01 22:21 1024JAVA之反射的应用 import java.util.H ... -
【win7配置jdk 环境变量】
2018-08-23 21:35 2237在桌面上计算机点右键选属性,或是开始菜单计算机上点右键选属性 ... -
【Eclipse构建过程循环依赖错误解决】
2018-08-22 23:10 1556A cycle was detected in the bu ... -
【JAVA 版本--雷人面试】
2016-07-24 15:40 1400目的:工作学习累了,娱乐娱乐一下,所谓隔行与隔山。 ... -
【JAVA产生对象的几种方式】
2016-04-16 20:39 1264import java.io.FileInputStrea ... -
【那些年我们踩过的java坑】
2016-02-26 21:20 61521、字符串大小写转换(JAVA文件UTF8编码,否则乱码) ... -
【Apache+tomcat+mod_jk 实现负载均衡】
2016-01-19 23:02 1664安装环境简介本次使 ... -
JSP的几种参数传值
2016-01-03 16:45 1257一、超链接<a href="P.jsp?u ... -
【门面设计模式】的故事来源(Facade Pattern)
2015-12-31 20:58 1308门面模式:门面模 ... -
用字符串模拟两个大数相加
2015-10-26 21:52 1426package cn.com.hadoop; /** * ...
相关推荐
如果需要获取真实的客户端IP地址,还需要检查HTTP头部信息中的`X-Forwarded-For`字段。 #### 二、获取客户端 MAC 地址 获取客户端的MAC地址相对较为复杂,一般不推荐直接在Web应用中实现该功能。但在某些特定场景...
它提供了便捷的方法来获取和处理IP地址,尤其对于获取客户端IP地址在Web应用中至关重要。 首先,让我们详细了解一下`IpUtils`这个工具类。在Java中,获取IP地址通常涉及到`java.net`包中的类,如`InetAddress`。`...
可以通过java获取客户端IPMAC主机名等信息。下载就能用,欢迎下载!
### Java 获取客户端 IP 地址 在 Web 开发中,获取客户端 IP 地址是一项非常重要的功能,尤其是在需要记录用户活动、实现地理位置定位或者进行安全验证等场景下。Java 提供了多种方式来获取客户端的 IP 地址,其中...
### Java获取客户端真实IP地址详解 在Web开发中,获取客户端的真实IP地址是一个常见的需求,尤其是在需要进行地理位置定位、安全审计、流量统计等场景下。然而,在存在反向代理服务器的环境中,传统的`request....
### Java获取客户端真实IP的两种方法详解 #### 一、问题背景 在Web开发中,经常需要获取客户端的真实IP地址来进行一系列的操作,比如统计访问来源、进行地理定位、安全防护等。然而,在实际应用场景中,客户端请求...
在Controller类获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用...
JAVA获取客户端IP地址和MAC地址 在JAVA中获取客户端的IP地址和MAC地址是非常重要的,特别是在服务器端需要记录客户端的信息时。下面我们将详细介绍如何获取客户端的IP地址和MAC地址。 一、获取客户端IP地址 在...
获取客户端IP地址、浏览器版本和操作系统信息在JSP中的实现方法 在JSP中,获取客户端的IP地址、浏览器版本和操作系统信息是非常重要的。通过使用HttpServletRequest对象,我们可以获取到客户端的相关信息。 获取...
获取客户端提交申请时的ip地址,例如用于微信支付的获取客户端ip,根据配置不不同,有可能ipv4或ipv6,当服务器在自己电脑上,做测试是,可以使用127.0.0.1替代localhost
首先,我们需要了解在Java Web应用中获取客户端IP地址的基本方法。通常,在Servlet环境下,可以通过HttpServletRequest对象的getRemoteAddr()方法来获取。然而,在某些情况下,如通过反向代理服务器(如Nginx、...
在上面的代码中,首先通过x-forwarded-for请求头获取客户端IP地址,然后将其分割以获取第一个IP地址,哪个就是客户端真实IP地址。 此外,还有其他方法可以获取客户端真实IP地址,例如通过Proxy-Client-IP、WL-Proxy...
在很多应用下都可能有需要将用户的真实IP记录下来,这时就要获得用户的真实IP地址,在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等...
在Java编程中,获取服务器的IP地址和MAC地址是常见的需求,特别是在网络通信和系统管理中。本篇文章将详细介绍如何使用Java实现这一功能,包括针对单网卡和多网卡环境的情况。 首先,获取服务器的IP地址通常涉及到`...
通过客户端的ip地址获取mac地址,本文文件本人测过,可用,请大家放心下载,绝不骗积分
System.out.println("客户端IP地址为:" + ipAddress); } } ``` 在上述代码中,`HttpServletRequest`的`getRemoteAddr()`方法用于获取客户端的IP地址。然而,如果应用部署在反向代理服务器(如Nginx)后,这个方法...
下面将详细介绍如何使用Java获取计算机名和IP地址。 首先,我们来看如何获取计算机名。计算机名通常指的是主机在网络中的标识符,可以通过`java.lang`包中的`InetAddress`类来获取。以下是一个简单的示例: ```...
首先,获取客户端IP地址通常涉及到服务器端的编程。在Java中,可以通过`java.net`包中的`Socket`或`HttpServletRequest`类来获取。当客户端发起HTTP请求时,服务器可以接收到请求对象,从中提取出客户端的IP地址。...
对于使用Java Server Pages (JSP) 的开发者来说,了解如何高效地获取客户端IP地址至关重要。本文将详细介绍几种在JSP环境中获取客户端IP地址的有效方法,并提供实际的代码示例。 #### 二、获取客户端IP地址的重要性...
在Java编程中,获取客户端IP地址以及其归属地是一项常见的需求,这主要涉及到网络协议的理解以及第三方库的使用。在Web应用中,服务器通常需要识别来访用户的地理位置信息,以便进行个性化服务、安全控制或者数据...