获取客户端使用的ip

一般使用jsp的时候大多数时间都可以使用request.getRemoteAddr() 来获取ip,但是这个前提是未经过反向代理等操作的原始地址,所以,需要在反向代理等操作之后还要获取客户端的ip变得困难重重,这里给大家个方法,仅供参考

 1 //获取客户端真实注册地址
 2     public String getRemoteHost(HttpServletRequest request){
 3         String ip = request.getHeader("x-forwarded-for");
 4         if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
 5             ip = request.getHeader("Proxy-Client-IP");
 6         }
 7         if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
 8             ip = request.getHeader("WL-Proxy-Client-IP");
 9         }
10         if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
11             ip = request.getRemoteAddr();
12         }
13         return ip.equals("0:0:0:0:0:0:0:1")?"127.0.0.1":ip;
14     }
时间: 2024-10-10 13:00:39

获取客户端使用的ip的相关文章

通过HttpservletRequest对象获取客户端的真实IP地址

这篇文章主要介绍了Java中使用HttpRequest获取用户真实IP地址,使用本文方法可以避免Apache.Squid.nginx等反向代理软件导致的非真实IP地址,需要的朋友可以参考下 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了. 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的UR

PHP获取客户端的真实IP

REMOTE_ADDR只能获取访问者本地连接中设置的IP,如中南民族大学校园网中自己设置的10.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址, 如果访问者使用代理服务器,将不获取代理服务器的IP,而是获取访问者网关的真实IP.如果将这个函数应用到限IP访问的网页中,别人即使通过限IP访问段中的代理服务器,也不能访问该页面. // 定义一个函数getIP() function getIP() { global $ip; if (getenv("HTTP_CLIENT_IP

获取客户端的真实IP

/** * 获取真实IP地址 * <p>使用getRealIP代替该方法</p> * @param request req * @return ip */ public static String getClinetIpByReq(HttpServletRequest request) { // 获取客户端ip地址 String clientIp = request.getHeader("x-forwarded-for"); if (clientIp == nu

PHP获取客户端和服务器端IP

    客户端IP相关的变量 1. $_SERVER['REMOTE_ADDR']; 客户端IP,有可能是用户的IP,也有可能是代理的IP. 2. $_SERVER['HTTP_CLIENT_IP']; 代理端的IP,可能存在,可伪造. 3. $_SERVER['HTTP_X_FORWARDED_FOR']; 用户是在哪个IP使用的代理,可能存在,可以伪造. 服务器端IP相关的变量 1. $_SERVER["SERVER_NAME"],需要使用函数gethostbyname()获得.这

获取客户端访问的ip地址

function real_ip() { static $realip = NULL; if ($realip !== NULL) { return $realip; } if (isset($_SERVER)) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); /* 取X-Forwarded-For中第一个非unknown的有效IP字符串

java 获取客户端的真实ip

直接上代码了: String ip = null; if (request.getHeader("X-Real-IP") == null) { ip = request.getRemoteHost(); } else { ip = request.getHeader("X-Real-IP"); }

nginx在varnish后端做负载均衡,后端tomca获取客户端真实IP

nginx在varnish后端做负载均衡,后端tomca获取客户端真实IP 1.设置nginx配置文件    首先要确定nginx做负载均衡,在安装时把http_realip_module 安装上了.    查看方法: /usr/local/nginx/sbin/nginx -V   配置nginx.conf    vim /usr/local/nginx/conf/nginx.conf   加入 set_real_ip_from 192.168.88.131;      重新加载nginx:

C#服务器获取客户端IP地址以及归属地探秘

背景:博主本是一位Windows桌面应用程序开发工程师,对网络通信一知半解.一日老婆逛完某宝,问:"为什么他们知道我的地址呢,他们是怎么获取我的地址的呢?" 顺着这个问题我们的探秘开始: 第一步:简单的服务搭建 思路,通过HttpListener在本地搭建一个简易的服务器,开发程序为控制台接口,核心类 HttpListenerService: 方法 Start()开启线程池针对指定IP进行监听,本地的端口选取的9527(周星驰唐伯虎点秋香在华府的编号)  public void Sta

.NET(C#)调用webService获取客户端IP地址所属区域(非异步)

功能描述: 此接口用于获取客户端访问的IP的地址所属的区域(国家,城市等).通过输入IP地址查询国家.城市.所有者等信息.没有注明国家的为中国输入参数:IP地址(自动替换 " ." 为 "."),返回数据: 一个一维字符串数组String(1),String(0) = IP地址:String(1) = 国家.城市.所有者等 1.1.1. 接口地址 Webservice方式: 例:http://webservice.webxml.com.cn/WebServices/