/**
* 获取访问者IP
*
* 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。
*
* 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割),
* 如果还不存在则调用Request .getRemoteAddr()。
*
* @param req 请求
* @return IP地址
*/
public static String ip(HttpServletRequest req) {
String ip = head(req,"X-Real-IP");
if (ip!=null && !"unknown".equalsIgnoreCase(ip)) {
return ip;
}
ip = head(req,"X-Forwarded-For");
if (ip!=null && !"unknown".equalsIgnoreCase(ip)) {
// 多次反向代理后会有多个IP值,第一个为真实IP。
int index = ip.indexOf(',');
return (index!=-1)?ip.substring(0,index):ip;
} else {
return req.getRemoteAddr();
}
}
分享到:
相关推荐
在.NET中,获取客户端IP地址通常通过HTTP请求的上下文来实现。当客户端发起请求时,服务器端可以通过以下方法获取: ```csharp using System.Net; // 获取客户端IP public string GetClientIP(HttpRequest request...
本文将详细介绍几种在.NET环境中获取客户端主机名和IP地址的方法。 #### 一、ASP.NET内置对象获取 在ASP.NET中,可以利用内置对象来获取客户端的信息。主要包括以下几种方法: 1. **Page.Server.MachineName**:...
在Axis中获取客户端IP地址,除了使用基本的Servlet API方法外,还需要考虑到服务部署环境可能存在的反向代理和负载均衡。可以使用以下步骤: 1. 首先尝试从HttpServletRequest的`getHeader("X-Forwarded-For")`获取...
本文实例讲述了C#实现获取本地内网(局域网)和外网(公网)IP地址的方法。分享给大家供大家参考,具体如下: 1、获取本机的IP地址集合: /// /// 获取本机所有ip地址 /// /// <param name=netType>InterNetwork:...
本篇文章将详细探讨如何在Delphi 7中实现获取客户端的外网IP。 首先,我们需要了解IP地址的类型。IP地址分为两种:内网IP(也称为私有IP)和外网IP(也称为公共IP)。内网IP是局域网内部设备使用的地址,如192.168....
在互联网应用开发中,获取客户端或服务器的外网IP地址是一项常见的需求。这不仅对于网络安全管理至关重要,还能帮助开发者实现地理位置定位、访问控制等高级功能。本文将详细介绍如何使用Python语言通过第三方平台...
这篇文章是对上篇文章获取外网ip和ip定位的修订版,上篇文章中得到的外网ip是服务器端的外网ip,而不是客户端的外网ip,此篇文章进行修改,得到客户端的外网ip和根据ip定位,上篇文章给大家带来的不便,请谅解。
本篇文章将详细介绍如何使用易语言获取外网IP的五种方法,旨在帮助易语言学习者增强网络编程能力。 1. **HTTP请求获取** 通过发送HTTP GET请求到提供公网IP查询服务的网站,如`http://checkip.dyndns.org`,解析...
在Flex中,要获取客户端IP,通常需要借助Web服务。Web服务端需要处理请求并返回客户端的IP信息。在服务器端,这可以通过访问HTTP请求头中的`X-Forwarded-For`或者`Remote-Addr`字段来实现,这些字段通常包含了...
在IT领域,获取路由器外网IP是一个常见的需求,特别是在网络编程和远程访问系统中。Delphi是一种强大的面向对象的编程语言,它提供了丰富的库和组件,使得开发这样的功能变得相对简单。下面我们将深入探讨如何使用...
### C++ 获取本机外网IP地址方法解析 在计算机网络中,获取本机的外网IP地址是一项常见的需求,特别是在开发需要与互联网交互的应用程序时。本文将深入探讨一个具体的实现方法,该方法通过调用HTTP服务来获取当前...
在实际应用中,这种方法并不适用于获取客户端的MAC地址,因为它依赖于客户端操作系统直接响应网络查询,而这在大多数现代网络环境中是不可行的。 因此,如果你需要在ASP.NET中实现防刷票或其他基于客户端硬件标识的...
本文将深入探讨标题为“e语言-5种获取外网IP方法”的主题,通过源码分析,揭示如何使用易语言实现获取互联网公共IP地址的多种技术。 1. HTTP GET请求获取IP HTTP GET是HTTP协议中最常见的请求方法之一,用于从...
总结来说,获取客户端IP地址的方法多种多样,有的方法依赖特定浏览器技术,有的则依赖第三方服务。由于安全性和隐私保护的原因,浏览器限制了获取用户真实IP地址的能力,因此开发者在处理IP地址相关功能时需要考虑到...
除了以上方法外,还有一些更高级的方法可以获取IP地址,例如通过执行系统命令来获取客户端的MAC地址。 #### 1. 获取客户端MAC地址 ```csharp public string GetMac(string ip) { string dirResults = ""; Process...
var wwip=; $(function(){ $(document).ready( function() { $.getJSON( http://smart-ip.net/geoip-json?callback=?, function(data){ ...例子,js获取本地与外网IP地址。 <script language=
本文将详细讲解如何使用C#语言获取电脑的外网IP地址,以及解析提供的源码。 首先,我们需要理解“外网IP”与“内网IP”的区别。内网IP(也称为私有IP)是局域网内部分配给每台设备的IP,而外网IP(公有IP)则是...
本文将详细讲解如何使用JavaScript获取用户外网或广域网的IP地址。 首先,我们要明白,由于浏览器的安全限制,JavaScript在本地环境下无法直接获取到用户的IP地址,它只能通过向服务器发送请求,由服务器返回用户的...
`$_SERVER['REMOTE_ADDR']` 是最基础的获取客户端IP的方法,它返回的是服务器接收到的TCP/IP连接的远程地址。如果用户直接访问,通常能获取到真实的外网IP。但当用户通过代理服务器或者NAT设备访问时,`REMOTE_ADDR...