用ASP获取客户端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 的值。
  
  '通用函数:如果不能取客户端真实IP,就会取客户端的代理IP
  
  Private Function getIP()Dim strIPAddrIf Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 ThenstrIPAddr = Request.ServerVariables("REMOTE_ADDR")ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 ThenstrIPAddr = 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 ThenstrIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)ElsestrIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")End IfgetIP = Trim(Mid(strIPAddr, 1, 30))End Function

转载于:https://www.cnblogs.com/fyen/archive/2010/12/21/1912228.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++——已知a+b、 a+c、b+c、 a+b+c,求a、b、 c

有三个非负整数a、b、 C,现按随机顺序给出它们的两两和以及总和4个整数,即ab、 ac、bc、 abc, 注意,给出的4个数的顺序是随机的,请根据这四个数求出a、b、c是多少? [输入形式] 输入为一-行4个正整数, x1、 x2、x3、 x4 (0≤xi≤10^9) ,表示…

DDD:DomainEvent、ApplicationEvent、Command

Command:纵向传递,跨分层,在控制器层和应用层之间传递。 DomainEvent:横向传递,跨聚合,在一个DLL中。 ApplicationEvent:横向传递,跨模块,在不同的DLL中。转载于:https:/…

表示和描述-边界追踪

边界追踪目标: 输入:某一区域的点 输出:这一区域的点的坐标序列(顺时针或逆时针) Moore边界追踪法: 两个前提条件: 1、图像为二值化后的图像(目标为1,背景为0&#xff0…

视频的读取与处理

读取本地视频,以灰度视频输出 import cv2vc cv2.VideoCapture(E:\Jupyter_workspace\study\data/a.mp4)#视频路径根据实际情况而定#检查是否打开正确 if vc.isOpened():open,fream vc.read()#read()返回两个参数,第一个参数为打开成功与否True or Fal…

更灵活的定位内存地址的方法05 - 零基础入门学习汇编语言36

第七章:更灵活的定位内存地址的方法05 让编程改变世界 Change the world by program 问题7.8 [codesyntax lang"asm"] assume cs:codesg,ds:datasg datasg segment db ibm db dec db dos db vax …

nextgaussian_Java Random nextGaussian()方法与示例

nextgaussian随机类nextGaussian()方法 (Random Class nextGaussian() method) nextGaussian() method is available in java.util package. nextGaussian()方法在java.util包中可用。 nextGaussian() method is used to generate the next pseudo-random Gaussian double valu…

Java PriorityQueue clear()方法与示例

PriorityQueue类clear()方法 (PriorityQueue Class clear() method) clear() method is available in java.util package. clear()方法在java.util包中可用。 clear() method is used to remove all the objects from this PriorityQueue. clear()方法用于从此PriorityQueue中删…

图像分割-边缘连接

三种基本方法: 1:局部处理 2:区域处理 3:使用霍夫变换的全局处理 局部处理 根据预定的规则,将所有相似点连接起来。 用于确定边缘像素相似性的两个主要性质:1、梯度向量的幅度2、梯度向量的角度 由于要…

01-图像ROI区域获取

截取部分图像数据 import cv2 def cv_show(name,img):cv2.imshow(name,img)cv2.waitKey(0)cv2.destroyAllWindows()img2 cv2.imread("E:\Jupyter_workspace\study\data/cat.png")#读取照片,第二个参数若为0,则灰度图;若不填或者1…

如何编写测试计划

有以下几个方面需要作考虑: 1. 测试的范围。要测试什么,这是肯定要明确的,即使你知道,你也要写出来,让看这份文档的人知道测试的范围。在确定测试内容的时候,还可以做一个优先级的区分,这样能保…

java clone 序列化_关于Java对象深度Clone以及序列化与反序列化的使用

‍ 我们可以利用clone方法来实现对象只见的复制,但对于比较复杂的对象(比如对象中包含其他对象,其他对象又包含别的对象.....)这样我们必须进行层层深度clone,每个对象需要实现 cloneable接口,比较麻烦,那就继续…

java enummap_Java EnumMap containsKey()方法与示例

java enummapEnumMap类containsKey()方法 (EnumMap Class containsKey() method) containsKey() method is available in java.util package. containsKey()方法在java.util包中可用。 containsKey() method is used to check whether this map has values for the given key e…

02-对图像进行边界填充

import cv2 import matplotlib.pyplot as pltimg2 cv2.imread("E:\Jupyter_workspace\study\data/cat.png")#读取照片,第二个参数若为0,则灰度图;若不填或者1则彩色图或本身图top_size,bottom_size,left_size,right_size (50,50,…

正则基础

http://www.ipc.me/regular_expression_07681.html文章错误: 1 字符集的一些应用 第二个正则少了一个左方括号。 2 字符集的元字符 /[]x]/中的第一个]左边少了一个转义符,在这种情况下转义符还是不能省略的。扩展 1 回车符 换行符 http://www.c…

Windows Phone 7独立存储空间IsolatedStorage

Windows Phone 7的solatedStorage可以用来保存应用程序的数据和设置。结构图如下 一、相关类 1.IsolatedStorageFile类 1)描述:表示在独立存储空间中的文件和目录。 2)重要属性 long AvailableFreeSpace:IsolatedStorage有效的剩余…

图像分割-阈值处理详解(迭代法、Otsu法、平滑改善法、边缘改进法、分块处理法、局部特性法、移动平均法)

博主联系方式: QQ:1540984562 QQ交流群:892023501 群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问。 阈值处理详解基础:基于全局的阈值处理1迭代算法(最小概率误…

java 用户控件_C#自定义控件VS用户控件

C#中自定义控件VS用户控件大比拼1 自定义控件与用户控件区别WinForm中,用户控件(User Control):继承自 UserControl,主要用于开发 Container 控件,Container控件可以添加其他Controls控件自定义控件(Custom Control):继…

Java FileDescriptor sync()方法与示例

FileDescriptor类sync()方法 (FileDescriptor Class sync() method) sync() method is available in java.io package. sync()方法在java.io包中可用。 sync() method is used to synchronize all the system buffer with the underlying device. sync()方法用于将所有系统缓冲…

windows 7资源管理器崩溃解决方法

最近被频繁的资源管理器explorer崩溃搞得几乎生活不能处理,一打开带有视频的文件夹,就explorer崩溃,要疯了。 日志中含有mpc_mtcontrol.dll 查来查去,没有一个确定的答案,baidu,google都没用,最…

03-对图像进行数值计算和加权融合

数值计算 import cv2img_1 cv2.imread(E:\Jupyter_workspace\study\data/beyond.png) img_2 cv2.imread(E:\Jupyter_workspace\study\data/water2.png)img_1_1 img_1 10 img_1[:2,:,0]#输出前两行就行 img_1_1[:2,:,0]#[h,w,c] img_2[:2,:,0]#[h,w,c](img_1 img_2)[:2,:,…