如何获得正确的客户IP?

yeelov 2010-07-19 09:41:13
我所用的获取客户IP地址的函数如下:
Function Userip()
Dim GetClientIP
'如果客户端用了代理服务器,则应该用ServerVariables("HTTP_X_FORWARDED_FOR")方法
GetClientIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If GetClientIP = "" or isnull(GetClientIP) or isempty(GetClientIP) Then
'如果客户端没用代理,应该用Request.ServerVariables("REMOTE_ADDR")方法
GetClientIP = Request.ServerVariables("REMOTE_ADDR")
end if
Userip = GetClientIP
End function

但是获取的全是一个:192.168.3.100,这个IP同时也是我这个服务器的默认网关。
请问如何获取访问者真正的IP地址。

...全文
51 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaukiyou 2010-07-20
[Quote=引用楼主 yeelov 的回复:]
我所用的获取客户IP地址的函数如下:
Function Userip()
Dim GetClientIP
'如果客户端用了代理服务器,则应该用ServerVariables("HTTP_X_FORWARDED_FOR")方法
GetClientIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If G……
[/Quote]

问题是你在哪里测试的?

每次都是返回服务器地址吗?
回复
yangna56 2010-07-20
<%
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")
%>

你的IP是:<%=userip%>


呵呵你感觉我的回答你满意不?
回复
lzp4881 2010-07-19
问问题的时候要把你的测试环境交代清楚,获取到网关地址时是怎么访问的,获取到其它地址又是怎么访问的?
回复
yeelov 2010-07-19
那为什么也会有其他的IP地址呢?
回复
lzp4881 2010-07-19
我是清楚了才回答,是你没理解。
你把服务器放在内网,访问都是通过你的网关到达你的服务器,所以得到的就是你的网关地址,这个很正常啊。
回复
yeelov 2010-07-19
晕,看清问题再回答,我是要获取访问者的IP,不是自己服务器的。
我这个函数也会获取其他访问者的IP,如果“10.68.3.249”,但是为什么会有“192.168.3.100”这个IP地址,这个我不清楚,有没有办法获取访问者真正的IP,是访问者,不是我服务器的IP
回复
lbcleo 2010-07-19
[Quote=引用 1 楼 lzp4881 的回复:]
你是把主机放在了内网吧,所以获取都是内网IP。一般网站作后好都是放在外网的,这样再访问就是获取的外网IP了。
[/Quote]`
回复
lzp4881 2010-07-19
你是把主机放在了内网吧,所以获取都是内网IP。一般网站作后好都是放在外网的,这样再访问就是获取的外网IP了。
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告