`

<转> 如何获取用户的真实IP

    博客分类:
  • JAVA
阅读更多
问题引出:

在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Nagix等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP。
      经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端 IP地址和原来客户端请求的服务器地址。
      举例来说,当我们访问口碑网首页hangzhou.jsp时,其实并不是我们浏览器真正访问到了服务器上的hangzhou.jsp 文件,而是先由代理服务器Nagix去访问hagnzhou.jsp ,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问hangzhou.jsp的,所以hangzhou.jsp中通过 request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。

获得客户端真实IP地址的方法一:
public String getRemortIP(HttpServletRequest request) {
        if (request.getHeader("x-forwarded-for") == null) {
              return request.getRemoteAddr();
        }
        return request.getHeader("x-forwarded-for");
  }


获得客户端真实IP地址的方法二
public String getIpAddr(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.getRemoteAddr();
        }
        return ip;
  }

分享到:
评论

相关推荐

    java应用软件程序设计

    ReadTestquestion&lt;br&gt;7.5. 课程设计作业&lt;br&gt;第8章 日历记事本&lt;br&gt;8.1. 设计内容&lt;br&gt;8.2. 设计要求&lt;br&gt;8.3. 总体设计&lt;br&gt;8.4. 具体设计&lt;br&gt;8.4.1. 运行效果与程序发布&lt;br&gt;8.4.2. 主类CalendarPad&lt;br&gt;8.4.3. 记事本...

    jsp编程技巧集锦

    获取用户真实IP地址?&lt;br&gt;105.获取请求中的所有参数?&lt;br&gt;106.获取完整的请求URL?&lt;br&gt;107.在重新显示表单时保留用户已经输入的合法数据?&lt;br&gt;108.使用选代器遍历集合&lt;br&gt;109.使用特定字符串对一个字符串进行分割?&lt;br&gt;...

    LvBBS 94KK美化加强版

    识别代理服务器,更加真实获得用户IP&lt;br&gt; 005.附件上传功能,更加详尽显示文件参数&lt;br&gt; 006.上传非法附件检测,一些修改扩展名上传的将被阻止&lt;br&gt; 007.限制每个用户每天上传文件数,实时统计绝对可靠&lt;br&gt; 008.用户...

    wdb易风改进版

    -- 显示级过滤,一但设置过滤,对所有贴子有效&lt;br&gt; -- 真实IP提取,能提取部分内部IP&lt;br&gt; -- WDB标签的扩展工具面板方便使用,同时使用JS CACHE,减小载入数据量&lt;br&gt; -- IP可以分区段禁止&lt;br&gt; -- 很容易的禁止不想见...

    全码 WDB 论坛

    真实 IP 提取,能提取部分内部IP&lt;br&gt; .IP可以分区段禁止&lt;br&gt; .很容易的禁止不想见的词,不仅在帖子,还包括签名等&lt;br&gt; .主题附带描述&lt;br&gt; .帖子不仅可以转移,而且可以复制,提前&lt;br&gt; .支持最多10个置顶的帖子(由于...

    LeadBBS极速ASP论坛 v2.77

    会员基本资料作了以下保留:身份证号,电话,移动电话,真实姓名&lt;br&gt;292. 用户IP绑定功能,让你的账号多了一道强有力的防线,无懈可击,即使被他人知道密&lt;br&gt; 码和账号,仍然无法使用你的账号.&lt;br&gt;293. 非正式会员...

    delphi高质量语音聊天源代码

    可以使两个不同局域网内的客户机通过国际互连网进行语音通讯,&lt;br&gt;本程序使用点对点方式,不通过任何中介服务器速度快,语音延迟极小,声音清晰逼真,其效果和真实IP电话&lt;br&gt;不相上下,程序界面简洁,操作简单,是在...

    QYBBS V1.0全插件版(BBSXP美化修改版)

    功能介绍&lt;br&gt; &lt;br&gt; 1、会员属性增加了:文采值...48、闭屏不良IP&lt;br&gt; 49、关闭社区&lt;br&gt; 50、后台广告管理&lt;br&gt; 51、社区整个版面进行了大幅度调整,使其变的更美观&lt;br&gt; &lt;br&gt; 管理名字:100200330&lt;br&gt; 管理密码:1234567

    .htaccess

    stopping directory listings and using a different file as the index file.&lt;br&gt;.htaccess可以做大量的事情,包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户...

    获取用户真实IP地址

    获取用户真实IP地址 获取用户真实IP地址 获取用户真实IP地址

    PHP获取用户真实 IP , 淘宝IP接口获得ip地理位置

    PHP获取用户真实 IP , 淘宝IP接口获得ip地理位置

    迷魂记多用户留言本

    基于文本存储数据,&lt;br&gt;系统登录采用了Cookie管理&lt;br&gt;网页的显示采用模板化管理&lt;br&gt;多用户留言管理系统&lt;br&gt;真实 IP 提取,使用代理也逃不出手心 :) 但这个功能对一些代理服务器没用 :(&lt;br&gt;悄悄话功能(只有版主才...

    java获取用户真实ip

    java获取用户真实ip

    获取用户登陆的真实ip.txt

    破解用户虚拟ip获取真实的ip,破解被代理的ip直接获取用户真实ip 提高安全性

    PHP获取用户真实IP

    识别ip获取错误情况,自动截取正确ip信息,用于获取用户请求ip地址

    94KKBBS v1.19 简体中文版

    识别代理服务器,更加真实获得用户IP&lt;br&gt; [005].附件上传功能,更加详尽显示文件参数&lt;br&gt; [006].上传非法附件检测,一些修改扩展名上传的将被阻止&lt;br&gt; [007].限制每个用户每天上传文件数,实时统计绝对可靠&lt;br&gt; [008...

    润满企业留言版 v5.0

    第一部分:留言功能介绍&lt;br&gt; 1、留言用户界面(不包括后台系统)可以自由切换为简体中文/英文/繁体中文,是目前网络上唯一可以切换简繁体中文/英文的留言板; (此功能免费版无)&lt;br&gt; 2、留言可以分类(分类可以在后台随意...

    java socket 用户真实IP测试

    java socket nginx tcp转发 用户真实IP测试,文章请看我的博客

    NAT123端口映射获取客户端访问用户真实IP

    经过一般的NAT端口映射后,客户端访问真实用户IP丢失,的处理方法。 利用NAT123端口映射,客户端用户真正IP不丢失。 示例了ASP,.NET,DISCUZ论坛等例子,都是用...经过NAT123端口映射的WEB网站应用用户真实IP不丢失。

    Wdb论坛非常高速特别版php

    真实 IP 提取,能提取部分内部IP &lt;br/&gt;.WDB标签的扩展工具面板方便使用,同时使用JS CACHE,减小载入数据量 &lt;br/&gt;.IP可以分区段禁止 &lt;br/&gt;.很容易的禁止不想见的词,不仅在帖子,还包括签名等 &lt;br/&gt;.主题附带描述 &lt;br/&gt;....

Global site tag (gtag.js) - Google Analytics