乘风原创程序

  • asp 取得用户真实IP,对代理地址仍然有效的函数
  • 2020/9/12 23:50:29
  • Asp获取真实IP地址,最简单可用一句话获取:

    ip=request.ServerVariables("REMOTE_ADDR")
    response.Write(ip)

    但这种方法对代理服务器上网的就不准了,故比较全面的是用下面的方法:取得用户真实IP,对代理地址仍然有效;返回值:文本类型的IP地址

    <% 
    '****************************** 
    '函数:GetUserTrueIP() 
    '参数:无 
    '作者:阿里西西 
    '日期:2007/7/13 
    '描述:取得用户真实IP,对代理地址仍然有效;返回值:文本类型的IP地址 
    '示例:<%=GetUserTrueIP()%> 
    '****************************** 
    Function GetUserTrueIP() 
      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 
      GetUserTrueIP = Trim(Mid(strIPAddr, 1, 30)) 
    End Function 
    %>
    

    其他网友的补充

    <%
    Private 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
    ip=getIP()
    response.write(ip)
    %>

    得到真实IP

    Function GetReallyIP()
    
    	Dim strIP
    	strIP=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    	If strIP="" Or InStr(strIP,"unknown") Then
    		strIP=Request.ServerVariables("REMOTE_ADDR")
    	ElseIf InStr(strIP,",") Then
    		strIP=Split(strIP,",")(0)
    	ElseIf InStr(strIP,";") Then
    		strIP=Split(strIP,";")(0)
    	End If
    	
    	GetReallyIP=Trim(strIP)
    
    End Function