| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 831 人关注过本帖
标题:[求助]并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWA ...
只看楼主 加入收藏
huifeidezhu
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2005-11-29
收藏
 问题点数:0 回复次数:4 
[求助]并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_F

在 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,怎么办?求各位大侠帮忙!!!

搜索更多相关主题的帖子: Request 代理服务器 FORWARDED HTTP 
2007-03-01 09:38
huifeidezhu
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2005-11-29
收藏
得分:0 
没有人知道吗?
各位能不能给点意见?


希望能和大家学到很多东西!!
2007-03-01 10:14
huifeidezhu
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2005-11-29
收藏
得分:0 
在线等~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

希望能和大家学到很多东西!!
2007-03-01 10:34
suyongtao
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:33
帖 子:8674
专家分:127
注 册:2004-11-6
收藏
得分:0 
动网论坛里有一段代码好像是取IP的,你可以看一下,

面朝大海,春暖花开!
2007-03-01 13:59
huifeidezhu
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2005-11-29
收藏
得分:0 

我找到动网的代码了
但是以下代码出错:
Microsoft VBScript 编译器错误 错误 '800a03ea'

语法错误

/jnsql_admin.asp,行51

Private Function getIP()

请问各位大侠这是怎么回事呢?
我始终找不到错误在哪儿啊!!


代码如下:
<%Userip = getIP()%>
<%
Private 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)
actforip=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)
actforip=Request.ServerVariables("REMOTE_ADDR")
Else
strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
actforip=Request.ServerVariables("REMOTE_ADDR")
End If
getIP = CheckStr(Trim(Mid(strIPAddr, 1, 30)))
End Function
%>


希望能和大家学到很多东西!!
2007-03-02 13:00
快速回复:[求助]并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_ ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049019 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved