【发布时间】:2011-02-23 00:12:22
【问题描述】:
我需要在 asp.net 中阻止一个 IP 地址或类
谁能帮我写代码?以及如何实施?
谢谢
【问题讨论】:
我需要在 asp.net 中阻止一个 IP 地址或类
谁能帮我写代码?以及如何实施?
谢谢
【问题讨论】:
您可以使用HttpRequest.UserHostAddress property 获取客户端的IP 地址(可以从任何页面使用this.Request 或使用静态属性HttpContext.Current 访问实例)。
据我所知,没有标准方法可以将 IP 地址与指定范围进行比较,因此您需要自己实现此位。
您可能希望为每个请求检查此内容,这可以在每个页面的OnInit 方法(您要阻止的)或应用程序的BeginRequest event 中完成(通常在@987654329 @)。
如果您检测到被阻止的地址,您可以使用Server.Transfer method 输出一个空(占位符)页面(Response.End 将是另一种选择,但这只是切断页面 - 返回一个空页面,而 Server.Transfer 允许您向客户端输出一些消息)。
【讨论】:
如果您所说的“阻止”是“不要让他们骚扰我的服务器”,这不是 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
【讨论】:
你提到你不熟悉 ASP.NET,所以,也许这篇来自Rick 的优秀文章可以帮助你,因为它是一篇关于如何阻止 IP 甚至有一个管理区域来管理它们的完整文章。 .
【讨论】: