`

追踪应用客户端IP

 
阅读更多
参考:
http://www.knowsky.com/532527.html

方法一:
public String getRemortIP(HttpServletRequest request) {  
    if (request.getHeader("x-forwarded-for") == null) {  
        return request.getRemoteAddr();  
    }  
    return request.getHeader("x-forwarded-for");  
} 


方法二:
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;  
} 



/*
    在jsp里,获取客户端的ip地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP。

  经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问index.jsp/时,其实并不是我们浏览器真正访问到了服务器上的index.jsp文件,而是先由代理服务器去访问index.jsp ,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。

    可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟哪个才是真正的用户端的真实IP呢?

  答案是取X-Forwarded-For中第一个非unknown的有效IP字符串。如:
X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100
用户真实IP为: 192.168.1.110

*/



也可以通过tomcat或者apache的配置,查看log信息中的ip

追踪IP,在dos窗口:




  • 大小: 5.8 KB
分享到:
评论

相关推荐

    java 获取客户端ip mac地址

    如果需要获取真实的客户端IP地址,还需要检查HTTP头部信息中的`X-Forwarded-For`字段。 #### 二、获取客户端 MAC 地址 获取客户端的MAC地址相对较为复杂,一般不推荐直接在Web应用中实现该功能。但在某些特定场景...

    客户端追踪标识客户端设备指纹追踪用户

    在IT行业中,客户端追踪是数据分析和用户行为理解的关键技术,特别是在网页应用和移动应用中。这一过程涉及到识别和记录用户设备的独特属性,从而形成所谓的“客户端设备指纹”。这个技术可以帮助网站和应用程序提供...

    asp.net获取客户端IP-用户名等信息

    2. **HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]**:这种方法同样可以从服务器变量中获取客户端IP,但与UserHostAddress不同的是,如果请求通过代理,它通常会返回代理服务器的IP。 3. **X-...

    nginx配置文件-安装客户端ip进行转发

    在本场景中,我们要探讨的是如何通过Nginx配置文件实现客户端IP的转发功能,这对于网站访问日志分析、安全策略实施以及负载均衡等都有着重要的作用。我们将主要分析两个配置文件:`nginx.conf`和`default.vhosts....

    神州数码客户端IP型

    【神州数码客户端IP型】是神州数码公司推出的一款专门用于网络接入验证的客户端软件,它主要针对企业或机构网络环境,提供基于IP地址的身份验证功能。这种验证方式旨在确保只有授权的设备可以通过网络进行访问,提高...

    ASP.NET 获取客户端IP和MAC地址的程序

    ### ASP.NET 获取客户端IP和MAC地址的技术解析 #### 一、引言 在现代网络环境中,获取客户端的IP地址和MAC地址是许多应用场景中的基本需求之一。例如,在网络安全监控、日志记录、地理位置追踪等方面都有着重要的...

    SANGFOR_AD_V4.8_X-Forwarded-For传输客户端ip到服务器配置指导书.pdf

    X-Forwarded-For功能允许在经过多个代理服务器或负载均衡器的网络环境中,服务器能够识别出最初发起请求的客户端IP,这对于日志分析、安全审计和用户行为追踪等场景至关重要。 3. **应用场景** 这个功能特别适用...

    精确的在线人数统计,记录客户端的ip等等........

    记录客户端IP地址可以提供以下信息: - **用户识别**:虽然IP地址不等同于唯一用户,但可以作为区分不同访问者的一种手段。 - **地理位置**:通过IP地址可以大致判断用户所在的国家、地区,这对于地域定向服务和...

    C#程序设计-3期(KC008) KC008110200019_如何在ASP.NET中获得客户端IP地址.docx

    首先,客户端IP地址是指互联网上的设备(如用户的电脑、手机等)在网络通信中使用的唯一标识符。在ASP.NET中,我们可以利用`HttpRequest`对象的`UserHostAddress`属性来获取这一信息。`HttpRequest`对象是ASP.NET...

    联通客户端下载IP

    综上所述,“联通客户端下载IP”这一主题涵盖了联通客户端的应用、IP地址的基础知识以及二者之间的互动机制。对于用户来说,了解这些信息有助于更好地利用联通的服务,同时也增加了对网络技术背后原理的理解。而对于...

    jsp获取客户端IP地址的方法

    因此,需要利用HTTP请求头中的其他信息来追踪真实的客户端IP地址。 常见的HTTP请求头字段中,以下几种常被用于确定客户端的真实IP地址: 1. X-Forwarded-For - X-Forwarded-For是一个非标准的HTTP请求头,它指明...

    IP-Guard下linux客户端用户手册

    - **1.2.6 授权软件的管理**:IP-Guard支持通过程序名或MD5值来识别授权软件,这有助于更准确地管理和控制哪些应用程序可以访问加密文档。此外,新版本的客户端不再支持旧服务器,以确保系统的安全性和稳定性。 - *...

    追踪linux TCP/IP 代码运行_光盘文件2

    这个主题“追踪Linux TCP/IP代码运行”通常涉及到对内核源码的深入理解和分析,以理解网络数据如何从应用层通过传输层、网络层到链路层进行传输。下面将详细介绍这个过程及其相关知识点。 1. **TCP/IP协议栈结构**...

    获取客户端网卡MAC地址和IP地址的几种方法.doc

    在开发B/S架构的应用程序时,为了确保用户的身份验证准确性以及追踪管理的需求,开发者常常需要获取客户端计算机的MAC地址和IP地址等信息。传统的做法是在服务器端通过各种技术手段(如调用Win32API、执行`nbtstat`...

    追踪LINUX TCP/IP代码运行一

    ### 追踪LINUX TCP/IP代码运行一 #### 1. 概述 本文旨在深入探索Linux环境下TCP/IP协议栈的实现与运作机制,通过跟踪分析Socket编程接口的具体实现细节来理解网络通信的基础原理。文章从Socket编程的角度出发,...

    PHP实现获取客户端IP并获取IP信息

    在PHP编程中,获取客户端IP地址以及对应的IP信息是常见的需求,这有助于追踪用户行为、进行地理定位等。本文将详细讲解如何通过PHP实现这一功能。 首先,客户端IP地址可以通过服务器上的环境变量来获取。在PHP中,...

    获取客户的ip小例子

    在IT行业中,网络编程是不可或缺的一部分,而获取客户端IP地址是一项基本操作。在这个"获取客户的ip小例子"中,我们将探讨如何使用Java语言来实现这一功能。Java提供了多种方法来获取HTTP请求中的客户端IP地址,这在...

    http客户端 可以模拟多个源IP

    在互联网通信中,客户端的IP地址通常由服务器记录,用于追踪请求来源。在某些情况下,如负载均衡或避免IP限制,可能需要模拟不同的源IP。此Python客户端工具通过设置代理服务器实现这一目标。代理服务器作为一个中间...

    客户与服务应用之取回客户IP

    因此,通常取第一个非"unknown"的IP作为真实客户端IP。 其次,获取IP地址后,我们可以利用这些信息做些什么呢? 1. 地理定位:通过IP地址可以反查到用户的大概地理位置,这在提供本地化服务、分析用户行为模式时...

    可以显示企业客户端的IP、计算机名、用户名等信息-----bginfo

    这款软件能够自定义显示内容,包括但不限于IP地址、计算机名、DNS设置、网关信息以及用户名等,这些信息对于诊断网络问题、管理设备配置以及确保网络安全至关重要。 首先,让我们深入了解一下bginfo的主要功能。它...

Global site tag (gtag.js) - Google Analytics