【问题标题】:How to block IP address or IP classes in ASP.NET如何在 ASP.NET 中阻止 IP 地址或 IP 类
【发布时间】:2011-02-23 00:12:22
【问题描述】:

我需要在 asp.net 中阻止一个 IP 地址或类

谁能帮我写代码?以及如何实施?

谢谢

【问题讨论】:

    标签: asp.net security


    【解决方案1】:

    您可以使用HttpRequest.UserHostAddress property 获取客户端的IP 地址(可以从任何页面使用this.Request 或使用静态属性HttpContext.Current 访问实例)。

    据我所知,没有标准方法可以将 IP 地址与指定范围进行比较,因此您需要自己实现此位。

    您可能希望为每个请求检查此内容,这可以在每个页面的OnInit 方法(您要阻止的)或应用程序的BeginRequest event 中完成(通常在@987654329 @)。

    如果您检测到被阻止的地址,您可以使用Server.Transfer method 输出一个空(占位符)页面(Response.End 将是另一种选择,但这只是切断页面 - 返回一个空页面,而 Server.Transfer 允许您向客户端输出一些消息)。

    【讨论】:

    • 我知道如何获取它,但我不知道如何阻止它。我对asp.net不是很熟悉
    • 另外,这应该在 HttpModule 上完成,因为如果 IP 被阻止,您不想通过不必要地处理请求来消耗 Web 服务器的资源。
    • @FinalDestiny:添加了其余的答案:-)
    【解决方案2】:

    如果您所说的“阻止”是“不要让他们骚扰我的服务器”,这不是 asp.net 问题,您需要防火墙(软件或硬件)。

    如果您所说的“阻止”是“不显示我的页面”:

    ' pseudocode, I haven't checked the exact syntax
    
    Sub Page_Load()
        If HttpRequest.UserHostAddress = "123.123.123.1" then
            Response.Redirect "404.htm" ' send them elsewhere
        end if
    End Sub
    

    【讨论】:

    • +1 建议尽可能在防火墙级别而不是软件级别处理此类事情。
    【解决方案3】:

    你提到你不熟悉 ASP.NET,所以,也许这篇来自Rick 的优秀文章可以帮助你,因为它是一篇关于如何阻止 IP 甚至有一个管理区域来管理它们的完整文章。 .

    http://www.west-wind.com/WebLog/posts/59731.aspx

    【讨论】:

      猜你喜欢
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      • 2020-04-06
      • 1970-01-01
      • 2011-06-01
      • 2011-02-21
      • 1970-01-01
      相关资源
      最近更新 更多