ASP如何获取真实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 的值。
相关推荐
-
ASP如何获取真实IP地址
在 ASP 中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址.要想透过代理服务器取得客户端的真实 IP 地址,就要使用Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取. 不过要注意的事,并不是每个代理服务器都能用 Request.ServerVa
-
C#获取真实IP地址实现方法
本文实例讲述了C#获取真实IP地址实现方法,分享给大家供大家参考.具体实现方法如下: 通常来说,大家获取用户IP地址常用的方法是: 复制代码 代码如下: string IpAddress = ""; if((HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null && HttpContext.Current.Request.ServerVariables[&q
-
asp.net获取真实ip的方法
本文实例讲述了asp.net获取真实ip的方法.分享给大家供大家参考.具体如下: public string getip() { string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (null == result || result == String.Empty) { result = HttpContext.Current.Request.ServerVari
-
C#获取真实IP地址(IP转为长整形、判断是否内网IP的方法)
今天查看登录日志,发现http_x_forwarded_for获取到的ip地址有些是内网ip地址,有些则是公网和内网ip地址一起获取到,用逗号分隔开,日志截图如下: 之前获取ip地址的C#代码如下: 复制代码 代码如下: /// <summary> /// C#获取客户端真实IP地址 /// </summary> /// <returns></returns> public static string GetIP()
-
springboot获取真实ip地址的方法实例
需求是用户在登录时,密码输错了5次以上要将这个ip禁用,所以如题,我需要在登录接口代码中获得这次请求的原始ip地址.禁用ip的逻辑已经写好了,目前痛点是获取ip地址,也正是这块代码让我被领导叼了. 既然项目一般都是走nginx和网关代理,那肯定得百度了,于是百度的代码如下: /** * 获取ip地址 * * @param request * @return */ public String getIpAddr(HttpServletRequest request) { String ip = r
-
JSP 获取真实IP地址的代码
但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP. 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地址返回给客户端.但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息.用以跟踪原有的客户端
-
LNAMP架构中后端Apache获取用户真实IP地址的2种方法
一.Nginx反向代理配置: 1.虚拟主机配置 复制代码 代码如下: location / { try_files $uri @apache;} location @apache {internal; proxy_pass http://127.0.0.1:8080; include proxy.conf;} location ~ .*\.(php|php5)?$ { proxy_pass http://127.0.0.1:8080; include proxy.
-
Java获取客户端真实IP地址过程解析
这篇文章主要介绍了Java获取客户端真实IP地址过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 业务背景 服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等拦截,在进行IP限定的时候就需要获取客户端真实的IP. 基础知识 访问服务端的方式一般分为两种: 未经过代理,直接访问服务器端: 通过多级代理,最终到达服务器端(nginx,squid,haproxy). 客户端请求信息都包含在HttpServletRequest中
-
基于nginx反向代理获取用户真实Ip地址详解
目录 引言 1.修改Nginx配置: 2.java获取客户端Ip 附:一个ip工具类 总结 引言 nginx做反向代理时,默认的配置后端获取到的Ip地址都来自于nginx,用request.getRemoteAddr();获取到的是nginx的ip地址,而不是用户的真实ip. 1.修改Nginx配置: server { listen 80; server_name jenkins.local.com; location / { proxy_set_header Host $host; proxy
-
PHP 获取客户端真实IP地址多种方法小结
经过复杂的判断与算是的获取IP地址函数 复制代码 代码如下: function getIP() { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif (getenv('HTTP_X_FORWARDED')) { $ip = getenv('
随机推荐
- 图片自动播放器脚本之家修正
- JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
- Js得到radiobuttonlist选中值的两种方法(推荐)
- javascript操作excel生成报表示例
- node.js中grunt和gulp的区别详解
- sso跨域写cookie的一段js脚本(推荐)
- 简单介绍Python中的JSON使用
- Android仿微信底部按钮滑动变色
- 详解MySQL的主从复制、读写分离、备份恢复
- readonly和disabled属性的区别
- 微信小程序前端源码逻辑和工作流
- Jquery公告滚动+AJAX后台得到数据
- java 将byte中的有效长度转换为String的实例代码
- 数据库的设计方法、规范与技巧
- 浅谈JQ中mouseover和mouseenter的区别
- 学习使用bootstrap的modal和carousel
- js键盘事件的keyCode
- c#中@的3种作用
- PHP静态类
- php基于Fleaphp框架实现cvs数据导入MySQL的方法