微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://blog.csdn.net/qq_43339072/article/details/117819623

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐