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();
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("http_client_ip");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
// 如果是多级代理,那么取第一个ip为客户ip
if (ip != null && ip.indexOf(",") != -1) {
ip = ip.substring(ip.lastIndexOf(",") + 1, ip.length()).trim();
}
return ip;
}
分享到:
相关推荐
IpUtil工具类--通过request获取IP,通过IP获取地址(需要联网,调用淘宝的IP库)。使用场景:在网站开发记录用户增删改查日志的时候,往往需要记录操作人的IP地址,来准确的生成操作日志记录等
获取用户请求IP地址 根据IP地址获取mac地址
在IT行业中,尤其是在Web开发领域,获取客户端的IP地址是一项常见的任务。这有助于跟踪用户行为、提供地域针对性的服务,甚至进行安全防护。本篇文章将详细解释如何在Java环境下,通过Servlet和Reactive编程模型来...
### 非request方式获取IP地址 #### 1. 方法概述 本示例中的`getIp()`方法采用Java标准库中的`java.net.InetAddress`类来获取本地主机的IP地址。这种方法避免了使用HTTP请求或套接字连接所带来的复杂性,提供了一种...
然而,在使用如Apache、Squid等反向代理服务器的情况下,直接使用`request.getRemoteAddr()`获取到的往往是代理服务器自身的IP地址,而不是客户端的真实IP地址。 #### 获取客户端真实IP的基本原理 在不使用反向...
- `GetLastError()`函数是Windows API的一部分,用于获取最后一次错误代码,这对于调试和理解网络操作失败的原因至关重要。 5. **SYN Flood攻击**:在"伪造IP后,似乎只能实现SYN Flooder,无法完成第3次握手!....
然而,在实际应用场景中,客户端请求往往经过了多级代理(如Apache、Squid等),这使得直接使用`request.getRemoteAddr()`方法获取到的IP地址并不是客户端的真实IP,而是代理服务器的IP地址。 例如,在使用Apache或...
获取在线用户IP的PHP代码.zip
### Java 获取客户端 IP 和 MAC 地址 在Java Web开发中,有时我们需要获取客户端的IP地址甚至是MAC地址,以便进行安全验证、用户行为追踪等操作。本文将详细介绍如何通过Java来实现这一功能。 #### 一、获取客户端...
Android DHCP 获取 IP 失败分析和解决 Android 操作系统中,DHCP(Dynamic Host Configuration Protocol)是用于动态分配 IP 地址的协议。然而,在某些情况下,Android 设备可能无法通过 DHCP 获取 IP 地址,导致...
Java根据Request获取客户端IP Java根据Request获取客户端IP是指在Java Web开发中获取客户端的IP地址,以便进行相应的处理和分析。在JSP中,获取客户端IP地址的方法是使用request.getRemoteAddr(),这种方法在大部分...
在Controller类获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用...
例如,Request.ServerVariables["REMOTE_ADDR"] 可以获取客户端的 IP 地址。 七、结论 在 C# 中,获取请求参数可以使用 Request.Params、Request、Request.QueryString、Request.Form、Request.Cookies 和 Request...
在ThinkPHP中,我们可以利用内置的Request对象来获取IP。例如: ```php use think\Request; $request = Request::instance(); $ip = $request->ip(); ``` 这段代码会返回当前请求的客户端IP地址。 获取到IP地址后...
### .NET 获取客户端主机名和IP地址 在.NET框架中,获取客户端的主机名和IP地址是一项常见的需求,尤其是在Web应用程序开发中。这通常用于跟踪用户活动、安全验证或者网络诊断等场景。本文将详细介绍几种在.NET环境...
当我们构建一个基于Servlet的Web应用程序时,有时需要获取访问用户的真实IP地址,这在处理用户请求、日志记录或者实现地理位置相关的功能时尤为关键。 Servlet是Java服务器端的一种组件,它扩展了Web服务器的功能,...
然而,在存在反向代理服务器的环境中,传统的`request.getRemoteAddr()`方法可能无法直接获取到客户端的真实IP地址。这是因为当请求经过反向代理(如Apache、Squid等)后,原始的IP地址会被代理服务器所替代,导致...
2. **获取本地主机信息**:通过调用`Dns.GetHostEntry(Dns.GetHostName())`方法,我们可以获得本地主机的`IPHostEntry`对象。 3. **提取IP地址**:`IPHostEntry.AddressList`属性返回一个包含所有IP地址的数组。...
在Java Web开发中,获取客户端IP地址是一项常见的需求,但这个过程可能会因网络架构的不同而变得复杂。在没有使用反向代理服务器的情况下,通过HttpServletRequest对象的`getRemoteAddr()`方法可以直接获取到客户端...