想实现在一个ASP论坛上用户每次发帖,IP都能获取到存入数据库。于是用了 如下语句来实现 urip=Request.ServerVariables("HTTP_X_FORWORDED_FOR")
IF urip="" then
urip=Request.ServerVariables("REMOTE_ADDR")
END IF 在测试环境下是正常的,IP可以获取,甚至是代理的。但是把它部署到正式环境后,发现用户IP都获得为192.168.1.254。
正式环境的服务器与外网连接的中间有个反向代理服务器。所以搞得每次IP都是 192.168.1.254,不知道大虾们能不能帮忙解决下。不胜感激!
JS 或者是ASP
IF urip="" then
urip=Request.ServerVariables("REMOTE_ADDR")
END IF 在测试环境下是正常的,IP可以获取,甚至是代理的。但是把它部署到正式环境后,发现用户IP都获得为192.168.1.254。
正式环境的服务器与外网连接的中间有个反向代理服务器。所以搞得每次IP都是 192.168.1.254,不知道大虾们能不能帮忙解决下。不胜感激!
JS 或者是ASP
Dim strIPAddr
If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariab
les("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.Ser
verVariables("HTTP_X_FORWARDED_FOR"), ",")-1)
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.Ser
verVariables("HTTP_X_FORWARDED_FOR"), ";")-1)
Else
strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
getIP = Trim(Mid(strIPAddr, 1, 30))
End Function
ip=getIP()
response.write(ip)
%>
这样就可以了
不好意思,哥们!没看到
我怎么一次相同的帖子发了两遍!
CSDN的BUG。。现在结贴!
非常抱歉,今天上来才看见说我有未结的帖子!