社区
ASP
帖子详情
为什么Request.ServerVariables("REMOTE_ADDR")得到服务器IP,不是客户端的IP
fswind
2004-12-12 05:43:12
为什么Request.ServerVariables("REMOTE_ADDR")得到服务器IP,不是客户端的IP
...全文
3148
25
打赏
收藏
为什么Request.ServerVariables("REMOTE_ADDR")得到服务器IP,不是客户端的IP
为什么Request.ServerVariables("REMOTE_ADDR")得到服务器IP,不是客户端的IP
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wrjx
2005-08-29
打赏
举报
回复
这是因为你的服务器安装有类似ISA Server基于ISAPI的防火墙软件所致,所有的客户端请求都将先被防火墙软件拦截过滤后,再发送给IIS处理,所以你这时获得的就是服务器本机的IP了,如果你安装的是ISA,可以参考这里 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/isa/isarefother_61wl.asp
moonvan
2004-12-14
打赏
举报
回复
qunluo(最爱白菜) 说得最详细了.
xlzhang66
2004-12-14
打赏
举报
回复
没错这样得到的是网关的IP要穿透服务器得到IP要用:Request.ServerVariables("HTTP_X_FORWARDED_FOR")
lei7909
2004-12-14
打赏
举报
回复
???
hackate
2004-12-14
打赏
举报
回复
这个代码没错啊,!奇怪会不会你本身就在服务段测试这个代码,所以导致的呢??奇怪哦!
dragonlyf
2004-12-14
打赏
举报
回复
Request.ServerVariables("REMOTE_ADDR") 读取客户端的ip
若是客户端使用代理服务器那就用 Request.ServerVariables("HTTP_X_FORWARDED_FOR")
这点qunluo说得很明了
你再瞧瞧自己代码 有没有问题
CnEve
2004-12-13
打赏
举报
回复
Request.ServerVariables("HTTP_X_FORWARDED_FOR")
又得取经了:)
雄牛
2004-12-13
打赏
举报
回复
晕,是不是服务器端访问的
晕,是不是服务器端访问的
晕,是不是服务器端访问的
晕,是不是服务器端访问的
晕,是不是服务器端访问的
晕,是不是服务器端访问的
晕,是不是服务器端访问的
晕,是不是服务器端访问的
晕,是不是服务器端访问的
晕,是不是服务器端访问的
晕,是不是服务器端访问的
晕,是不是服务器端访问的
hackate
2004-12-13
打赏
举报
回复
哈哈,楼上的回答不对吧,人家现在是在郁闷他为什么访问的得到的是服务器IP,而不是讨论代理的嘛,即使你用代理估计也是得到服务器IP,现在就看看他什么回事了!
楼主你把你获取IP的代码发上来,让大家看看如何?
yqh1314
2004-12-13
打赏
举报
回复
写的 没有错撒``
fswind
2004-12-13
打赏
举报
回复
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb2312">
<title> 站点发布信息</title>
</head>
<body>
<%
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then
Response.Write(request.ServerVariables("REMOTE_ADDR")&"<br>")
else
Response.Write(request.ServerVariables("HTTP_X_FORWARDED_FOR")&"<br>")
end if
%>
</body>
</html>
gxh973121
2004-12-13
打赏
举报
回复
mark
tweeg_nee
2004-12-12
打赏
举报
回复
我还没见过 HTTP_X_FORWARDED_FOR 能读到东西的
wanghaoran
2004-12-12
打赏
举报
回复
大家都在讨论这个问题,但都看到具体的代码,代码不可能有诈吧!
passionke
2004-12-12
打赏
举报
回复
up
qunluo
2004-12-12
打赏
举报
回复
在 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 的值。
fswind
2004-12-12
打赏
举报
回复
端口映射的功能就是访问61.146.72.69的80就是访问192.168.9.88的80.
这没有什么不对呀
sdts
2004-12-12
打赏
举报
回复
这样的话 可能是我们的请求先转到192.168.9.88 然后由192.168.9.88访问你的61.146.72.69
所以就是那样的结果
fswind
2004-12-12
打赏
举报
回复
61.146.72.69的80端口映射到192.168.9.88,应该不会有什么问题
fswind
2004-12-12
打赏
举报
回复
可能有什么问题?
加载更多回复(5)
ASP如何获取真实
IP
地址
ASP如何获取真实
IP
地址 大家都知道,在ASP中可以使用
Request
.
Server
Variables
("
REMOTE
_
ADD
R")来取得
客户端
的
IP
地址,但如果
客户端
是使用代理
服务器
来访问,那取到的就是代理
服务器
的
IP
地址,而不是真正的
客户端
IP
地址。要想透过代理
服务器
取得
客户端
的真实
IP
地址,就要使用
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR")来读取。 不过要注意的是,并不是每个代理
服务器
都能用
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR")来读取
客户端
的真实
IP
,有些用此方法读取到的仍然是代理
服务器
的
IP
。 还有一点需要注意的是:如果
客户端
没有通过代理
服务器
来访问,那么用
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR")取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理: ...... user
ip
=
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR") If user
ip
= "" Then user
ip
=
Request
.
Server
Variables
("
REMOTE
_
ADD
R") ...... 即:如果
客户端
通过代理
服务器
,则取HTTP_X_FORWARDED_FOR的值,如果没通过代理
服务器
,就取
REMOTE
_
ADD
R的值。
ASP获取
ip
地址_
服务器
时间等
ASP获取
ip
地址_
服务器
时间。在ASP中使用
Request
.
Server
Variables
("
REMOTE
_
ADD
R") 来取得
客户端
的
IP
地址,但如果
客户端
是使用代理
服务器
来访问,那取到的就是代理
服务器
的
IP
地址,而不是真正的
客户端
IP
地址。要想透过代理
服务器
取得
客户端
的真实
IP
地址,就要使用
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR") 来读取。不过要注意的事,并不是每个代理
服务器
都能用
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR") 来读取
客户端
的真实
IP
,有些用此方法读取到的仍然是代理
服务器
的
IP
。
获取
客户端
IP
函数详细做法
获取
客户端
IP
函数详细做法, Function get
IP
() Dim str
IP
Add
r If
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR") = "" OR InStr(
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR"), "unknown") >0 Then str
IP
Add
r =
Request
.
Server
Variables
("
REMOTE
_
ADD
R") ElseIf InStr(
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR"), ",") > 0 Then str
IP
Add
r = Mid(
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR"), 1, InStr(
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR"), ",")-1) ElseIf InStr(
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR"), ";") > 0 Then str
IP
Add
r = Mid(
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR"), 1, InStr(
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR"), ";")-1) Else str
IP
Add
r =
Request
.
Server
Variables
("HTTP_X_FORWARDED_FOR") End If get
IP
= Trim(Mid(str
IP
Add
r, 1, 30)) End Function
asp HTTP_X_FORWARDED_FOR和
REMOTE
_
ADD
R
在
Request
.
Server
Variables
中并没有HTTP_X_FORWARDED_FOR这个变量,只有
REMOTE
_
ADD
R这个变量,但是这两个变量都能够取得
客户端
IP
地址。那么他们之间的区别是什么呢? 在ASP中使用
Request
.
Server
Variables
(“
REMOTE
_
ADD
R”) 来取得
客户端
的
IP
地址,但如果
客户端
是使用代理
服务器
来访问,那取到的就是代理
服务器
的
IP
地址,而不是真正的
客户端
IP
地址。要想透过代理
服务器
取得
客户端
的真实
IP
地址,就要使用
Request
.
Server
Variables
(“HTTP_X_FORWARDED_FOR”) 来读取。 不
C#实用类集DdotNet
200多个工具类 .cs 文件读写 文件夹读写 各种加密解密 XML操作 #region 获得用户
IP
///
/// 获得用户
IP
///
public static string GetUser
Ip
() { string
ip
; string[] temp; bool isErr = false; if (System.Web.HttpContext.Current.
Request
.
Server
Variables
["HTTP_X_ForWARDED_For"] == null)
ip
= System.Web.HttpContext.Current.
Request
.
Server
Variables
["
REMOTE
_
ADD
R"].ToString(); else
ip
= System.Web.HttpContext.Current.
Request
.
Server
Variables
["HTTP_X_ForWARDED_For"].ToString(); if (
ip
.Length > 15) isErr = true; else { temp =
ip
.Split('.');
ASP
28,391
社区成员
357,060
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章