编程语言
首页 > 编程语言> > ASP.NET判断客户机是否使用了代理

ASP.NET判断客户机是否使用了代理

作者:互联网

''' <summary>
    ''' 判断客户端是否使用了代理服务器<br />
    ''' 本函数最多可以判断到中级匿名的服务器(即至少有一个IP是客户机的真实IP的匿名
    ''' </summary>
    ''' <returns>
    ''' True:【布尔值】表示用户正在使用不匿名、低级匿名、普通匿名的代理服务器<br />
    ''' False:【布尔值】表示用户正在使用高度匿名的代理服务器或者用户没有使用代理服务器
    ''' </returns>
    ''' <remarks>
    ''' 1、本函数不可以查找高匿名度的服务器,因此用户使用高匿名服务器时的返回值与用户不用代理服务器的判断结果一样的<br />
    ''' 2、目前此函数有时候存在用户明明没有使用代理服务器但是函数还是返回True的问题
    ''' </remarks>
    Public Shared Function checkIpPro() As Boolean
        Dim bl As Boolean = False
        Dim FY_IP As String = String.Empty
        FY_IP = HttpContext.Current.Request.ServerVariables("ALL_HTTP").ToLower()
        If FY_IP.IndexOf("proxy") > 0 OrElse FY_IP.IndexOf("http_via") > 0 OrElse FY_IP.IndexOf("http_pragma") > 0 OrElse HttpContext.Current.Request.ServerVariables("HTTP_PROXY_CONNECTION") <> "" OrElse HttpContext.Current.Request.ServerVariables("HTTP_VIA") <> "" OrElse HttpContext.Current.Request.ServerVariables("HTTP_USER_AGENT_VIA") <> "" OrElse HttpContext.Current.Request.ServerVariables("HTTP_X_FORWARDED_FOR") <> "" OrElse HttpContext.Current.Request.ServerVariables("HTTP_PROXY_CONNECTION") <> "" OrElse HttpContext.Current.Request.ServerVariables("HTTP_CACHE_CONTROL") <> "" OrElse HttpContext.Current.Request.ServerVariables("HTTP_CACHE_INFO") <> "" Then
            bl = True
            'bug待修复:刷新页面异常
        End If
        Return bl
    End Function

标签:ASP,HTTP,客户机,ServerVariables,Request,Current,NET,HttpContext,OrElse
来源: https://blog.csdn.net/qq_43339072/article/details/117819623