- 浏览: 1047690 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
public String getIp(HttpServletRequest request) {
2. String ip= request.getHeader("X-Forwarded-For");
3. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
4. ip= request.getHeader("Proxy-Client-IP");
5. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
6. ip= request.getHeader("WL-Proxy-Client-IP");
7. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
8. ip= request.getHeader("HTTP_CLIENT_IP");
9. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
10. ip= request.getHeader("HTTP_X_FORWARDED_FOR");
11. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
12. ip= request.getRemoteAddr();
13. if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)){
14. try {
15. ip= InetAddress.getLocalHost().getHostAddress();
16. }
17. catch (UnknownHostException e) {
18. e.printStackTrace();
19. }
20. }
21. return ip
22.}
Java代码 复制代码 收藏代码
1./**
2. * 获取访问者IP
3. *
4. * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。
5. *
6. * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割),
7. * 如果还不存在则调用Request .getRemoteAddr()。
8. *
9. * @param request
10. * @return
11. */
12. public static String getIpAddr(HttpServletRequest request) {
13. String ip = request.getHeader("X-Real-IP");
14. if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
15. return ip;
16. }
17. ip = request.getHeader("X-Forwarded-For");
18. if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
19. // 多次反向代理后会有多个IP值,第一个为真实IP。
20. int index = ip.indexOf(',');
21. if (index != -1) {
22. return ip.substring(0, index);
23. } else {
24. return ip;
25. }
26. } else {
27. return request.getRemoteAddr();
28. }
29. }
2. String ip= request.getHeader("X-Forwarded-For");
3. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
4. ip= request.getHeader("Proxy-Client-IP");
5. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
6. ip= request.getHeader("WL-Proxy-Client-IP");
7. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
8. ip= request.getHeader("HTTP_CLIENT_IP");
9. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
10. ip= request.getHeader("HTTP_X_FORWARDED_FOR");
11. if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
12. ip= request.getRemoteAddr();
13. if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)){
14. try {
15. ip= InetAddress.getLocalHost().getHostAddress();
16. }
17. catch (UnknownHostException e) {
18. e.printStackTrace();
19. }
20. }
21. return ip
22.}
Java代码 复制代码 收藏代码
1./**
2. * 获取访问者IP
3. *
4. * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。
5. *
6. * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割),
7. * 如果还不存在则调用Request .getRemoteAddr()。
8. *
9. * @param request
10. * @return
11. */
12. public static String getIpAddr(HttpServletRequest request) {
13. String ip = request.getHeader("X-Real-IP");
14. if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
15. return ip;
16. }
17. ip = request.getHeader("X-Forwarded-For");
18. if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
19. // 多次反向代理后会有多个IP值,第一个为真实IP。
20. int index = ip.indexOf(',');
21. if (index != -1) {
22. return ip.substring(0, index);
23. } else {
24. return ip;
25. }
26. } else {
27. return request.getRemoteAddr();
28. }
29. }
发表评论
-
20180222积累
2018-02-22 09:34 4781. mybatis如何通过接口查找对应的mapper. ... -
20180208积累
2018-02-08 10:28 465临时表与永久表相似,但临时表存储在 tempdb 中,当不 ... -
行业应用
2018-01-30 16:30 484git clone的时候用上面那个IP地址,下面栏中的不能 ... -
SQLite 数据库
2018-01-29 22:57 755android: SQLite创建数据 ... -
java里面获取map的key和value的方法
2018-02-01 11:29 2158获取map的key和value的方法分为两种形式: ma ... -
Eclipse中Maven WEB工程tomcat项目添加调试以及项目发布细节记录
2018-02-23 21:11 725一、建立一个maven WEB项目 1、file-&g ... -
错误:HttpServlet was not found on the Java
2018-02-23 21:12 381我们在用Eclipse进行Java web ... -
使用 java8 实现List到Array的转换
2018-02-23 21:13 2985开发中需要调用第三方的库,有些 API 的入参要求是 do ... -
Java8 利用Lambda处理List集合
2018-01-11 09:58 5630Java 8新增的Lambda表达式,我们可以很方便地并行操 ... -
java中string与json互相转化
2018-01-11 09:40 1076在Java中socket传输数据时,数据类型往往比较难选择。 ... -
JSON 数据格式
2018-01-11 09:37 474JSON(JavaScript Object Notatio ... -
java怎么读取json格式的数据
2018-01-11 09:46 1059java可以使用JSONObject和JSONArray来操作 ... -
Java8-如何将List转变为逗号分隔的字符串
2018-01-10 10:13 1987Converting a List to a String ... -
eclipse maven 打war包的两种方式
2018-02-23 21:25 703第一种:利用pom.xml文件打包。 右键pom.xml ... -
Annotation(三)——Spring注解开发
2018-02-28 09:21 428Spring框架的核心功能IoC(Inversion o ... -
Spring自定义注解
2018-02-28 09:32 594java注解:附在代码中的一些元信息,用于在编译、运行时起 ... -
Java项目
2018-01-08 10:56 0这两种解决办法已经能完全解决问题,不过值得注意的一点是,我 ... -
解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法
2018-03-22 10:41 1130在Eclipse中建立好一个Maven项目后,如果Java ... -
Java @override报错的解决方法
2018-01-07 12:56 0有时候Java的Eclipse工程换一台电脑后编译总是@ove ... -
Java 8 配置Maven-javadoc-plugin
2018-01-07 09:07 1040在升级JDK至1.8之后,使用Maven-javadoc- ...
相关推荐
本文将详细讲解如何在Java环境中,通过读取纯真IP数据库来获取IP地址所在地区。 首先,要理解IP地址和地理位置之间的关联。IP地址是一个由四部分组成的数字标识,用于在网络中唯一标识一台设备。而地理位置信息则是...
### Java获取IP地址知识点解析 在本篇文章中,我们将深入探讨如何使用Java语言来获取IP地址。这是一项在网络编程中非常基础且重要的技能,能够帮助开发者了解客户端或服务器的网络位置信息。以下是对给定文件中的...
总之,通过Java获取IP地址对应的城市代码涉及了数据库查询、网络请求等多个技术点。在实际开发中,我们需要根据项目需求、性能要求和成本考虑选择合适的实现方式。对于大型项目,可能会结合使用本地数据库和服务提供...
在Java编程中,获取IP地址并返回对应的国家、地区以及城市信息是一项常见的需求,尤其是在进行网络定位或数据分析时。为了实现这一功能,开发者通常会利用IP数据库,如QQwry IP库,它包含了全球IP地址与地理位置的...
java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类
java 获取IP方法工具类 java 获取IP方法工具类java 获取IP方法工具类 java 获取IP方法工具类java 获取IP方法工具类 java 获取IP方法工具类java 获取IP方法工具类 java 获取IP方法工具类java 获取IP方法工具类 java ...
java根据ip获取国家、地区名称,附带ip库 java根据ip获取国家、地区名称,附带ip库
### 使用Java获取IP地址 #### 一、引言 在现代网络编程中,获取客户端或服务器的IP地址是一项常见的需求。Java提供了强大的网络编程支持,其中包括了获取IP地址的功能。本文将详细介绍如何利用Java标准库中的`java...
java获得IP的方法大全
### Java获取客户端真实IP地址详解 在Web开发中,获取客户端的真实IP地址是一个常见的需求,尤其是在需要进行地理位置定位、安全审计、流量统计等场景下。然而,在存在反向代理服务器的环境中,传统的`request....
在Java编程中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个"java IP地址工具类"是为了解决这个问题而设计的。它提供了便捷的方法来获取和处理IP地址,尤其对于获取客户端IP地址在Web应用中至...
在Java编程中,获取IP地址是一项常见的任务,无论是为了网络通信、日志记录还是其他网络相关的功能。在Java中获取IP地址主要涉及到网络编程的知识,包括InetAddress类、Socket编程等概念。以下将详细讲解如何在Java...
在Java编程语言中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个程序虽然界面简单,但核心功能强大,它能够帮助开发者获取指定域名对应的IP地址。以下是关于这个话题的一些详细知识点: 1. *...
需要注意的是,`X-Forwarded-For`头部可能存在被篡改的风险,因此在某些安全敏感的应用场景中,直接依赖这个头部获取IP可能不够安全。此外,不同的反向代理服务器可能有特定的配置,如Squid的`forwarded_for`选项,...
java获取IP地址。别人总结的文章,自己备份一下,需要的同学可以参考
标题"java IP 库 ip"指的是使用Java来处理IP相关的功能,而描述中的"java获取ip,离线文件数据库,代码已写好"暗示我们有一个离线数据库用于IP查询,这通常涉及到IP到地理位置的映射。标签"java IP 库 ip ipaddress...
2. **获取IP地址**:`HttpServletRequest`对象有一个`getRemoteAddr()`方法,它返回客户端的IP地址。然而,如果应用运行在反向代理服务器(如Nginx)后,这个方法可能会返回代理服务器的IP。因此,我们需要检查`X-...
`InetAddress`提供了`getByName()`方法,可以将字符串形式的IP地址转换为`InetAddress`对象,然后通过`getHostAddress()`方法获取IP地址,`getHostName()`方法则能获取主机名,但这些方法无法直接得到国家或地区的...
本文将详细讨论如何使用Java编程语言来获取公网IP地址。 首先,我们需要理解获取公网IP的基本原理。通常,当我们的设备连接到互联网时,ISP(Internet Service Provider,互联网服务提供商)会分配一个公网IP。这个...