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

2021/6/11 20:24:54

本文主要是介绍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.NET判断客户机是否使用了代理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程