<?php if($_SERVER['REMOTE_ADDR'] != 'xx.xx.xx.xx') {
header("Location: http://google.com");
} ?>
这是阻止某些 IP 地址访问我的 Windows 服务器上的某些文件夹的好方法吗?
或者它可以被webscarab之类的代理软件拦截,并且可以修改原始IP地址来绕过这个?
它可以被任何具有与您阻止的 IP 地址不同的 IP 地址的代理绕过。您可以检查X-Forwarded-For
(如果您使用的是 Apache,请使用 Apache 进行挖掘apache_request_headers()
),但如果您将其优先于$_SERVER['REMOTE_ADDR']
.
另外,我可以忽略你的Location
标题。exit
在它之后也放一个。
如果您只想通过 IP 阻止,您可以使用 .htaccess - 为一组目录设置规则而不是创建大量 php 文件更容易。但这不是过滤用户的好方法。创建一个简单的注册表单,或使用来自 twitter、facebook 或其他网站的 API。