正如这篇文章所述,blocking IP's via PHP非常容易。
但是,如何在网站范围内使用IIS执行此操作?
以下是我的(大)警告:
我有什么方法可以使用IIS将IP列入白名单吗?
好消息是我有一个静态的IP列表白名单,所以我不需要轻易改变它们。
答案 0 :(得分:4)
您可以在IIS中将IP地址列入白名单,这样可以为您提供所需的结果。
答案 1 :(得分:2)
您可以使用IIRF之类的网址重写器来执行此操作。插入规则以将404或其他任何内容返回到来自不允许的IP的请求。这适用于任何Web应用程序平台:PHP,Java,ASP.NET,RoR,静态html或图像,等等。
自述文件给出了一个这样的例子:
RewriteCond %{REMOTE_ADDR} ^(?!127.0.0.1)([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})(.*)$
RewriteRule ^/(?!redirected.htm)(.*)$ /redirected.htm
它说:
当服务器变量“REMOTE_ADDR”的计算结果为非127.0.0.1的ip地址时,上述条件的计算结果为true。 ?!是零宽度负前瞻,正则表达式末尾的(。*)是捕获有时出现在该变量中的任何垃圾。条件之后的规则是,对于任何不是“redirected.htm”的URL,将其映射到“redirected.htm”。这可以防止无休止的重写。 (你也可以使用[L]修饰符标志来防止无休止的重写)。
此RewriteCond + RewriteRule将任何外部发起的请求重定向到IIS服务器。您可以针对特定的白名单IP执行类似操作。
IIRF是一个用C语言编写的ISAPI过滤器,在哲学上与mod_rewrite类似。它适用于IIS5,6或7.您将需要管理员权限才能进行设置。您不需要“编程”,但是有一个ini文件与.htaccess具有类似的语法(特别是对于mod_rewrite规则)。
IIRF是免费和开源的。