网站流量异常,不能正常访问,发现是几个IP在不停的刷流量,所以想对IHttpHandler做个扩展,如果是ip.txt里的恶意IP则拒绝访问,如果不是则正常访问页面。设想的类如下,但实现不了。。 public class MyHandler : IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
string path = context.Server.MapPath("ip.txt");
StreamReader s = File.OpenText(path);
string ips = s.ReadToEnd();
s.Close();
string[] arrayIPAddress = ips.Split('|'); string cip = context.Request.UserHostAddress;
foreach (string ip in arrayIPAddress)
{
if (cip == ip)
{
return;
}
}
}
}
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
string path = context.Server.MapPath("ip.txt");
StreamReader s = File.OpenText(path);
string ips = s.ReadToEnd();
s.Close();
string[] arrayIPAddress = ips.Split('|'); string cip = context.Request.UserHostAddress;
foreach (string ip in arrayIPAddress)
{
if (cip == ip)
{
return;
}
}
}
}
代码是正确的,可以防止IP访问,但是不在ip.txt里IP访问页面也不能显示内容。所以请教怎么显示原始页面呢?
foreach (string ip in arrayIPAddress)
{
if (cip == ip)
{
return;
}
没看到你的禁止访问处理过程啊.
不知道怎么写了,目的是拒绝ip,怎么实现Response拒绝呢,就是不想返回任何请求资源。
每个恶意IP每天访问800多万次,一共有数百个恶意IP。如果返回请求资源。。马上就挂掉了。