如何获得正确的客户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地址。

...全文
92 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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了。

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧