一般情况下直接使用HttpServletRequest对象的getRemoteAddr()方法就能获取到客户端IP地址了。

/*** 获取客户端IP地址 */
public String getClientIP(HttpServletRequest request){return request.getRemoteAddr();
}

实际情况下项目的开发都会比较复杂,比如会使用到反向代理,此时经过代理后客户端和服务端(真正处理业务的服务端)之间就会增加了一个服务端(分配请求的服务端),当

服务端(真正处理业务的服务端)使用HttpServletRequest对象的getRemoteAddr()方法去获取客户端的IP时,得到的IP会是服务端(分配请求的服务端)的IP,而非客户端的IP。

所以此时就要使用HttpServletRequest对象的getHeader()方法来获取真实的客户端IP地址了

/*** 获取客户端IP地址 */
public String getClientIP(HttpServletRequest request){if(request.getHeader("x-forwarded-for") == null){return request.getRemoteAddr();}//x-forwarded-for是return request.getHeader("x-forwarded-for");
}

转载于:https://www.cnblogs.com/20170719log/p/7230326.html

JavaWeb项目服务端获取客户端的IP地址相关推荐

  1. java服务端获取客户端ip(代理)

    在没有网关或者反向代理软件情况下,java里获取客户端ip地址的方法是request.getRemoteAddr() 先解释下http协议和TCP协议: 网页默认是进行http连接了,http协议即超 ...

  2. 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的。但是在通过了Apache,Squi...

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实 ...

  3. PHP获取客户端真实IP地址的方法

    php获取客户端IP地址有四种方法,这五种方法分别为 1 2 3 4 REMOTE_ADDR HTTP_CLIENT_IP HTTP_X_FORWARDED_FOR HTTP_VIA REMOTE_A ...

  4. 获取客户端的IP地址

    #region public static string GetClientIP() 获取客户端的IP地址/// <summary>/// 获取客户端的IP地址/// </summa ...

  5. 使用JS获取客户端的IP地址

    使用JS获取客户端的IP地址 搜狐IP地址查询接口(可设置编码):https://pv.sohu.com/cityjson?ie=utf-8 简单使用: <script src="ht ...

  6. php如何获取客户端请求ip地址的方法

    php如何获取客户端请求ip地址的方法 获取客户端ip地址的函数 获取客户端ip地址的函数 function getip(){$ip = false;if (!empty($_SERVER[" ...

  7. java获取客户端的IP地址工具类

    java获取客户端的IP地址工具类 import java.net.InetAddress; import java.net.UnknownHostException;import javax.ser ...

  8. 服务端获取客户端ip方法

    X-Forwarded-For X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项.它不是RFC中 ...

  9. 获取客户端真实IP地址

    Java-Web获取客户端真实IP: 发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限定的时候,需要首先获取该真实的IP. 一般分为两种情况: ...

  10. 如何使用JavaScript获取客户端的IP地址?

    我需要以某种方式使用JavaScript检索客户端的IP地址: 没有服务器端代码,甚至没有SSI. 但是,我不反对使用免费的第三方脚本/服务. #1楼 在您的页面中包含以下代码: <script ...

最新文章

  1. iBATIS之父:iBATIS框架的成功蜕变
  2. UVA11021麻球繁衍
  3. Linux下进程间通信的六种机制详解
  4. numpy(2)-非齐次线性方程组求解
  5. 独立开发者分享:游戏本地化的6个建议
  6. [转]I,P,B帧和PTS,DTS的关系
  7. 被卡性能的时候要care数据类型(洛谷P5594TLE+RE的经历,Java语言描述)
  8. makefile 文件 (​ http://blog.csdn.net/ruglcc/article/details/7814546/ )
  9. 刷题记录 kuangbin带你飞专题四:最短路练习
  10. VS中依赖库相对路径的配置及项目间依赖项
  11. 《现代操作系统(中文第三版)》课后习题——第二章 进程与线程
  12. flash 在谷歌 不能使用
  13. c语言ad转换实验报告,有关单片机AD转换的实验报告
  14. iOS扫码识别之后添加震动/播放声音提示、歌词解析并随音乐滚动显示(包含demo源码)
  15. 港股分时交易数据 API 接口
  16. 第二次作业:微信实例分析
  17. 启嘉春秋:《三字经》
  18. TensorFlow 手写实现卷积神经网络CNN
  19. 【C语言基础练习】有红、绿、蓝三种颜色的球各3个。现在将着9个球混合放在一个盒子中,从中任意摸出6个,编程计算摸出球的各种颜色搭配。
  20. 多个工作表合并到一个工作表

热门文章

  1. c语言文件修改某一行,利用C语言替换文件中某一行的方法
  2. iOS与JS交互之UIWebView协议拦截
  3. 从矩阵与空间操作的关系理解CSS3的transform
  4. UVALive 6508 Permutation Graphs
  5. Android studio: 自 maven 增加一個函式庫
  6. Android 内存数据库
  7. 2012网页设计趋势(上)
  8. 巧用G6FTPServer账号***台湾某图书服务器
  9. Castle IOC容器构建配置详解(二)
  10. Fast DDS Fast DDS主要包括以下内容DDS API、Fast DDS-Gen、RTPS Wire Protocol