在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")

<%
'通用函数:如果不能取客户端真实IP,就会取客户端的代理IP
Function getIP()
Dim strIPAddr
If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then  strIPAddr = Request.ServerVariables("REMOTE_ADDR")
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then  strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then  strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)
Else  strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
getIP = Trim(Mid(strIPAddr, 1, 30))
End Function
%>

  

转载于:https://www.cnblogs.com/ljx2012/archive/2012/08/21/2649049.html

ASP如何获取客户端真实IP地址相关推荐

  1. PHP获取客户端真实IP地址的方法

    php获取客户端IP地址有四种方法,这五种方法分别为 1 2 3 4 REMOTE_ADDR HTTP_CLIENT_IP HTTP_X_FORWARDED_FOR HTTP_VIA REMOTE_A ...

  2. 获取客户端真实IP地址

    Java-Web获取客户端真实IP: 发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限定的时候,需要首先获取该真实的IP. 一般分为两种情况: ...

  3. golang 获取客户端真实IP地址

    [Go]获取用户真实的ip地址 用户请求到达提供服务的服务器中间有很多的环节,导致服务获取用户真实的 ip 非常困难,大多数的框架及工具库都会封装各种获取用户真实 ip 的方法,在 exnet 包中也 ...

  4. asp.net如何获取客户端真实IP地址

    目前网上流行的所谓"取真实IP地址"的方法,都有bug,没有考虑到多层透明代理的情况. 多数代码类似: string IpAddress = (HttpContext.Curren ...

  5. Nginx反向代理后无法获取客户端真实IP地址

    当我们使用 Nginx 代理转发服务后,会发现我们无法获取客户端的真实IP地址,从而无法获取客户端的地理位置等信息. 1.原始配置文件如下 worker_processes 1;events {wor ...

  6. java 获取客户端真实 ip 地址和 mac 地址

    现在都流行显示 ip 归属地,那么我先来获取客户端的真实 ip 地址以及 mac 地址,上代码 import javax.servlet.http.HttpServletRequest; import ...

  7. PHP获取客户端真实 IP 地址

    该函数将获取用户的真实 IP 地址,即便他使用代理服务器. function getRealIpAddr() { if (!emptyempty($_SERVER['HTTP_CLIENT_IP']) ...

  8. vue获取url中ip_Kubernetes 集群中这样获取客户端真实 IP

    Kubernetes 依靠 kube-proxy 组件实现 Service 的通信与负载均衡.在这个过程中,由于使用了 SNAT 对源地址进行了转换,导致 Pod 中的服务拿不到真实的客户端 IP 地 ...

  9. Java正确获取客户端真实IP方法整理

    转载自 干货:Java正确获取客户端真实IP方法整理 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apach ...

最新文章

  1. 《Python编程从入门到实践》学习笔记8(第9章:类)
  2. jsplumb dom 位置发生变化,连线错位
  3. Vue + SpringBoot跨域
  4. stm32 hal 串口只可以接收到一包数据数据
  5. python程序设计基础第三版_Python程序设计(第三版)PPT及源码
  6. 初探 performance – 监控网页与程序性能
  7. SELinux系列(九)——SELinux auditd日志系统的安装与启动
  8. 《水经注地图发布服务中间件》for Linux 版发布
  9. 用vue-cli搭建vue项目
  10. 小孔子内容管理系统第一次更新
  11. 是时候关注邮件安全了
  12. linux下xz格式,【转载】Linux下tar.xz格式文件的解压方法
  13. 工行网银B2c第三方接口开发
  14. HTML5期末大作业:商城网站设计——仿天猫商城(9页) HTML+CSS大作业: 网页制作作业_疫情防控网页设计...
  15. 【单调栈】P4147 玉蟾宫
  16. 未收到服务器返回信息吗,inode 未收到服务器回应
  17. linux 查看efi分区命令,一次修复linux的efi引导的集中方法总结记录
  18. python深入之装饰器--通过选择发说说和发图片的案例理解装饰器
  19. socket的read和available()方法
  20. 云上铺体育场馆管理系统能做什么?

热门文章

  1. 软件测试—软件测试基础知识—测试用例设计的方法之场景法、正交试验法和错误推断法
  2. 计算机python指什么_Python是什么?
  3. linux jmeter 内存,JMeter-Linux内存不足
  4. linux 安装 中文输入法,[linux]安装中文输入法
  5. 现在程序员的工资是不是被高估了?不存在的!
  6. easyui 修改单元格内容_jquery easyui datagrid实现增加,修改,删除方法总结
  7. 为什么word中插入对象会自动关闭word_你常常忽视的Word文本操作小技巧
  8. c linux下并行编程指南,Linux环境下C编程指南(第2版)
  9. pandas 如何删掉第一行_Pandas-数据筛选
  10. fatal exception java_java.lang.IllegalStateExceptio