我在程序中也用Request.UserHostAddress得到访问者的IP,可是我得到的IP是我服务器网卡的IP(如:192.168.0.1和192.168.1.1,我的服务器是双网卡,装有ISA2004)请问用Request.UserHostAddress
为什么不能得到访问者的IP啊?我应该怎么改呢???

解决方案 »

  1.   

    我现在访问我的网站,从外网访问的话得到的IP是接路由器的IP 192.168.1.1,从内网访问的话得到的IP是:192.168.0.1,反正得到的不是客户端的I P ,请问怎么办???????????????
    我的服务器上有ISA2004
      

  2.   

    下面是获取用户真实IP地址的一段vbscript,你看看能不能用上。
    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) 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) 
    Else 
    strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
    End If getIP = Trim(Mid(strIPAddr, 1, 30)) End Function 
      

  3.   

    推荐用Request.ServerVariables("REMOTE_ADDR")
    至于“HTTP_X_FORWARDED_FOR”很多情况下是取不到的,因为对方网络可能会有安全性的限制
      

  4.   

    Request.ServerVariables("REMOTE_ADDR")
    我用过了,得到的仍然和用UserHostAddress一样的结果,晕,看来真的没有办法了啊!!!