正如这个家伙的帖子所概述的,通过PHP阻止IP是相当容易的。
但是,如何使用IIS在站点范围内执行此操作?
以下是我的(大的)警告:
有什么办法可以用IIS白名单IP的吗?
好消息是,我有一个静态列表的IP到白名单,所以我将不需要轻易地改变他们。
发布于 2009-06-25 17:22:16
您可以在IIS中白名单IP地址,这将给出您想要的结果。
发布于 2009-06-25 16:34:57
您可以使用URL重写器(如IIRF )来完成此操作。插入规则返回404或任何您喜欢的请求来自不允许的IP。这将适用于任何web应用程序平台: PHP、Java、ASP.NET、RoR、静态html或图像等等。
readme给出了一个这样的例子:
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是免费和开放源码的。
https://stackoverflow.com/questions/1044878
复制相似问题