一些下载网站内容的机器人程序,写得很不好,会疯狂的刷比较耗时的页面,这会对正常用户的访问带来很大的麻烦。避免这个问题,就需要实时对用户访问量进行监控。
以前自己用VC++6.0写了个ISAPI filter .就是做实时限制,实时封杀IP功能的。
当时是参照下面的文章写的:
http://www.codeguru.com/Cpp/I-N/isapi/filters/article.php/c1303
这钟方式下的代码在:
http://www.ghj1976.net/OpenSource/Project/IPPolicy/Code/CsdnIpPolicy.rar
在ASP.net中, 是可以写一个 httpModules 程序来实现实时监控。原因看下图说明的asp.net执行机制。
其实 asp.net 中的 Session 等都是用这个机制实现的。具体可以看你本机的 machine.config 文件。
这种方式下的代码在:
http://www.ghj1976.net/OpenSource/Project/IPPolicy/Code/IpPolicy.rar
需要注意的地方:
第一:基于 httpModules 的这个程序,只对
ASP.net 系列的文件(比如 *.aspx *.asmx)有效。也就是由 aspnet_isapi.dll? 来解析的文件。
对 *.html *.asp *.jpg 等这些文件无效。
要想对这些文件有效,请用前一个 ISAPI filter 程序。
第二:基于 httpModules 的这个程序,在一个站点有多个虚拟目录的情况下,各个虚拟目录都是一个独立的运算单元,相关之间没有关系。各个虚拟目录的实时记录都是不通用的。