如何根据每秒或每分钟来自该IP的连接数拒绝向该IP提供服务


How to deny service to IP based on the number connections per second or minute from that IP?

这是针对DDoS攻击的

基本上,我需要根据特定时间内的特定连接数拒绝访问该网站。比如1分钟或1秒。如果某个IP在特定时间内与最大连接重叠,则该IP将被列入黑名单,并有1天的解除连接。

例如:一分钟内连接1000个服务器是不正常的,这个ip将被列入黑名单。

我想要的是一个在PHP中检测这一点的脚本。但是!,非常重要的是:如何不拒绝谷歌机器人或搜索机器人的服务,以及如何不拒绝普通访客的服务。

我认为这类事情不应该进入应用程序的代码中。这是您可以在网络级别实现的东西。你的防火墙可能已经提供了这种东西。如果你在Linux中使用IPTables,你肯定可以实现这类规则

在IPTables的情况下,一个可能有帮助的链接是这样的。

这个链接实际上比上面更好(谢谢,谷歌!)

如果你不使用Linux,或者防火墙不支持这类功能,你可以很容易地在你的DB服务器前面放一个Linux盒子,并实现这种方法。