恶意IP屏蔽程序,100分望各位指正!!!!!!!!!!!!!!!

POPO_POPO 2006-10-28 10:28:08
程序可以运行,但是不能屏蔽IP和写日志!望各位指正其中的错误和部署的不足!!!
思路:
   服务器定时(每隔1min)测试数据库的内容(表包含 IP,time两个字段)一次,若某些IP在1min中出现的次数大于3则屏蔽它。
   在Global.asax.cs的Application_Start()中,开一个线程执行定时测试。测试的具体操作类写在IPTack.cs中。
   测试页index.aspx每刷新一次就向数据库里插入一次浏览器的ip和时间。
  
...全文
448 54 打赏 收藏 举报
写回复
54 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
POPO_POPO 2006-10-31
  • 打赏
  • 举报
回复
谢谢 各位的帮助 我的程序现在可以调试运行了!!
采用的还是老办法,就是把Application_Start()里的代码,写到了BedinQuest()里。
但是到服务器上就不能工作了!!!服务器上没装VS2003,服务器的系统是Server 2003
开发是在XP上!!!
我没法调试!!!!!!!!!!!!!!
POPO_POPO 2006-10-30
  • 打赏
  • 举报
回复
我的IP限制是设置IIS的操作,不是将IP放到数据库中。然后再web Server启动时检索IP表。
而是将1min内所有的浏览器的ip和连接到的是写到个数据表中,然后计算它1min操作的次数。
如果次ip 1min内超过100次,就在IIS里限制它!!!
iuhxq 2006-10-30
  • 打赏
  • 举报
回复
在内存里建hashtable表,然后在BeginRequest事件里操作hashtable表。

另外再在Application_Start里启动定时器,定时扫描hashtable表
Ivony 2006-10-30
  • 打赏
  • 举报
回复
如果不想让搜索引擎来搜,直接写个robbot文件就行了


这样吧,我大致说说思路。

首先在Web上,缓存是必须考虑的问题,每一次请求都连接一次数据库是不可行的事情。
所以,被屏蔽的IP必须缓存起来,实际上一个IP也就是四个字节,存一百万个也不过占4M的内存。
如果Web服务器只有一台,那么可以直接在Web服务器上计数,一般来说Web程序要十几分钟才会重启,所以没有什么大问题,况且要屏蔽的也是那些经常性的IP。Web服务器一旦检测到哪个IP超标,屏蔽并且写到数据库里供下次使用。
如果Web服务器超过一台,那么必须把数据存到所有的Web服务器都能看到的地方。
还有就是Web服务器的定时功能,实际上如果你的Web服务器没有人访问,你读到的数据也是无意义的,所以应该把读取的操作放到每一次请求上,把时间存在一个static变量里,每一次请求都拿当前时间来比较一下,如果超过一分钟则把当前时间存进去,并更新数据。

Session是相对于用户而言的,不知到你注册在Session的事件上干什么,Web有Web开发方式,断不可用WinForm的思想来开发。
POPO_POPO 2006-10-30
  • 打赏
  • 举报
回复
我该怎么办.............??
POPO_POPO 2006-10-30
  • 打赏
  • 举报
回复
....................................
POPO_POPO 2006-10-30
  • 打赏
  • 举报
回复
我们网站主要是防止搜索引擎过多地来抓东西!!!
shalen520 2006-10-30
  • 打赏
  • 举报
回复
Global 本来就是要继承HttpApplication 的,应用程序没有HttpApplication 的实例,如何能响应请求呢?这里没有问题

但这种检测还是很容易绕过的,比如弄一些代理来访问,挨个换着用,你的法子就不起作用了
Ivony 2006-10-30
  • 打赏
  • 举报
回复
让Application休眠?!晕了……
Ivony 2006-10-30
  • 打赏
  • 举报
回复
架构很有问题,如果不是共享数据库,多台Web服务器的话,完全可以在Web服务器上缓存,数据库也可以设计得更简单,只需要插用户名,然后每一分钟一个COUNT+GROUP BY就完了。
POPO_POPO 2006-10-30
  • 打赏
  • 举报
回复
大家都来啊
来者有分!
dengkz1 2006-10-30
  • 打赏
  • 举报
回复
up
POPO_POPO 2006-10-30
  • 打赏
  • 举报
回复
问题还没解决 我不能就这样沉下去啊!!
POPO_POPO 2006-10-30
  • 打赏
  • 举报
回复
快来人啊!!!!!!!!!!!!!!!!!!!!!!!!!!!
POPO_POPO 2006-10-30
  • 打赏
  • 举报
回复
问题还没解决 我不能就这样沉下去啊!!
cantonstar 2006-10-30
  • 打赏
  • 举报
回复
UP
POPO_POPO 2006-10-30
  • 打赏
  • 举报
回复
大家都来啊
来者有分!
POPO_POPO 2006-10-30
  • 打赏
  • 举报
回复
大家都来啊
来者有分!
POPO_POPO 2006-10-30
  • 打赏
  • 举报
回复
大家都来啊
来者有分!
yjwang0621 2006-10-30
  • 打赏
  • 举报
回复
关注ing
加载更多回复(34)
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2006-10-28 10:28
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。