在很多应用下都可能有需要将用户的真实IP记录下来,这时就要获得用户的真实IP地址,在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了
获得客户端真实IP地址
public String getIpAddr(HttpServletRequestrequest) {
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;
}
如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,取X-Forwarded-For中第一个非unknown的有效IP字符串
http://shanekwok.iteye.com/blog/150992
分享到:
相关推荐
### Java获取客户端真实IP地址详解 在Web开发中,获取客户端的真实IP地址是一个常见的需求,尤其是在需要进行地理位置定位、安全审计、流量统计等场景下。然而,在存在反向代理服务器的环境中,传统的`request....
【ASP获取客户端真实IP地址】 在互联网环境中,为了提供个性化的服务和防范恶意攻击,获取客户端的真实IP地址是一项基础且重要的任务。这篇文章主要探讨如何利用ASP(Active Server Pages)技术来实现这一目标。 *...
通过上述方法,我们可以有效地解决在使用反向代理服务器时获取客户端真实IP地址的问题。需要注意的是,在处理`X-Forwarded-For`字段时,我们应该优先考虑获取第一个非`unknown`的IP地址,以确保获取到的IP地址尽可能...
Java获取客户端真实IP地址过程解析 Java获取客户端真实IP地址过程解析是指在服务器端获取客户端的真实IP地址的过程。该过程是非常重要的,因为在业务背景下,服务器端需要进行签名验证、客户端IP限定等拦截,而获取...
### Java获取客户端真实IP的两种方法详解 #### 一、问题背景 在Web开发中,经常需要获取客户端的真实IP地址来进行一系列的操作,比如统计访问来源、进行地理定位、安全防护等。然而,在实际应用场景中,客户端请求...
在Java Web开发中,有时我们需要获取客户端的IP地址甚至是MAC地址,以便进行安全验证、用户行为追踪等操作。本文将详细介绍如何通过Java来实现这一功能。 #### 一、获取客户端 IP 地址 获取客户端的IP地址通常在...
这就给获取客户端真实IP地址带来了一定的难度。 #### 3. HTTP头信息与代理类型 HTTP头信息是客户端发送给服务器的一系列信息,其中包含了一些关于客户端和通信过程的详细信息。在PHP中,可以利用`$_SERVER`全局...
此外,获取客户端真实IP地址的另一个注意事项是安全性问题。攻击者可能通过伪造X-Forwarded-For头部信息来进行IP欺骗。因此,在需要高安全性验证的场景下,依赖X-Forwarded-For头部信息时应当谨慎,并结合其他安全...
1. **获取 IP 地址**:使用 `request.getRemoteAddr()` 可能会获取到代理服务器的 IP 地址,而通过检查 `X-Forwarded-For` 请求头可以更准确地获取客户端的真实 IP 地址。 2. **获取 MAC 地址**:虽然可以通过执行...
2. **获取客户端IP地址**:在Web应用中,服务器需要区分每个客户端,`IpUtils`可能会有方法处理`HttpServletRequest`对象,从HTTP请求头(如`X-Forwarded-For`或`RemoteAddr`)中解析出真实客户端的IP地址。...
目前网上流行的所谓“取真实IP地址”的方法,都有bug,没有考虑到多层透明代理的情况。
但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP。所以...
集成各种获取方式,获取正确的IP
### JSP 页面获取客户端真实 IP 的方法 在 IT 领域中,了解客户端的真实 IP 地址对于网站统计...通过上述方法,我们可以有效地解决在 JSP 页面中获取客户端真实 IP 地址的问题,这对于开发人员来说是非常有用的技巧。
在.NET开发环境中,获取客户端的IP地址和MAC地址是常见的需求,这主要涉及到网络通信和系统编程的相关知识。本文将详细讲解如何在.NET中实现这一功能,并提供相关的代码示例。 首先,我们要明白IP地址和MAC地址的...
在使用多级反向代理的情况下,`X-Forwarded-For`的值可能是一串IP值,我们需要取第一个非unknown的有效IP字符串作为客户端的真实IP地址。 获取浏览器版本和操作系统信息 我们可以使用`request.getHeader("User-...
因此,准确地获取客户端真实IP地址变得尤为重要。 #### 二、HTTP头部信息 在HTTP请求中,可以通过以下几个头部字段来获取客户端IP地址: 1. **X-Forwarded-For**:通常被用作负载均衡器或者代理服务器传递原始...
将`0.0.0.0`替换为客户机的真实IP地址即可。 **应用场景**: - 适用于需要根据客户端IP地址进行地理定位的场景,如电商网站自动识别用户所在城市并提供相应服务。 --- #### 二、使用JS获取计算机名、MAC地址、...
### 获取客户端真实IP地址 在Web开发中,获取客户端的真实IP地址是一项常见的需求。尤其是在存在代理服务器的情况下,传统的`request.getRemoteAddr()`方法可能无法直接获取到客户端的真实IP地址。本文将详细介绍...