如何获得真实的ip

在 ASP 中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实IP 地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取。
  不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。
  还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:

......
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")
......

  即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,如果没通过代理服务器,就取 REMOTE_ADDR 的值。

时间: 2024-09-17 04:12:38

如何获得真实的ip的相关文章

asp.net 透过ISA获取真实的IP地址

问题描述 请问各位大虾如何透过ISA获取客户端真实的IP地址?Page.Request.UserHostAddress;Request.ServerVariables("REMOTE_ADDR")Request.ServerVariables("HTTP_X_FORWARDED_FOR")都没用

NGINX前端代理TOMCAT取真实客户端IP

nginx前端代理tomcat取真实客户端IP 使用Nginx作为反向代理时,Tomcat的日志记录的客户端IP就不在是真实的客户端IP,而是Nginx代理的IP.要解决这个问题可以在Nginx配置一个新的Header,用来存储$remote_add,然后再Tomcat获取记录这个值. 新增nginx配置.   server { listen 80; server_name www.xxxxx.com; location / { proxy_pass http://IP:8080/; proxy

【ASP接口开发】获取访问URL的真实客户端IP地址

目前项目中需要获取到访问接口的客户端的真实IP,暂时用此做一个简单的认证.在网上搜了个还算靠谱的,特做下记录: public strIP if strIP="" then strIP="" '如果没有定义 strIP 全局变量则定义它 function getIP() dim strIPaddr if Request.ServerVariables("HTTP_X_FORWARDED_FOR")="" OR InStr(Req

nginx做反向负载均衡,后端服务器获取真实客户端ip(转)

首先,在前端nginx上需要做如下配置: location / proxy_set_hearder host                $host; proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for; proxy_set_header X-real-ip           $remote_addr; }; nginx会在把请求转向后台real-server前把http报头中的ip地址进行替换:这样操作完成后,real-s

关于httpservletrequest的获取真实的ip

via 值为: 下面是一些DemoWTP/1.1 GDSZ-PS-GW010-WAP05.gd.chinamobile.com (Nokia WAP Gateway 4.0 CD3/ECD13_C/NWG4.0 CD3 ECD13_C 4.1.03)   下面是解释 列出从客户端到 OCS 或者相反方向的响应经过了哪些代理服务器,他们用什么协议(和版本)发送的请求.当客户端请求到达第一个代理服务器时,该服务器会在自己发出的请求里面添加Via头部,并填上自己的相关信息,当下一个代理服务器收到第一个

F5 负载均衡,获取不到真实的ip地址,有没有解决办法??

问题描述 最近项目中在试用一个BIG-F5V9的负载均衡器产品,发现在服务器端竟然取不到客户端的真实IP,取到的只是负载均衡器的虚拟IP,不知是不是哪个地方配置有问题,不过在V4.5版本上不用做什么特殊配置就可以正常取得的啊. 解决方案 解决方案二: 解决方案三:貌似有一个地方可以配置,让F5在http的head里面加一个属性来保持真实的地址,你查查看

获得客户端真实的IP地址

ip地址|客户端 function GetIP(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcas

linux中tomcat记录负载均衡真实用户IP地址

Tomcat有nginx或其他软件做负载均衡,tomcat需要记录真实客户端地址,需要在Host或Context下定义如下内容:  代码如下 复制代码 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"                 prefix="localhost_access_log." suffix=".txt&quo

Nginx 内置变量,细化规则,真实IP获取及限制连接请求

希望下周测试之后能用起来!!!感觉很有用的. http://www.bzfshop.net/article/176.html http://www.cr173.com/html/19761_1.html http://blog.pixelastic.com/2013/09/27/understanding-nginx-location-blocks-rewrite-rules/ 你 Google 不到的配置   很多时候,我们的网站不是简单的  普通用户IE浏览器  --->  你的服务器  的