我有一个外部 IP 列表,我想在我的网站上阻止(或者,更好的是,重定向)。我最初是采用这种.htaccess
方法,但后来意识到使用 PHP 可能更容易做到这一点。但现在我不确定......似乎 PHP 和 MySQL 一起是最好的选择。
我在 MySQL 中有一个包含 CIDR 块的表。我一直在努力尝试将用户的 IP 与表格进行比较。
最好的方法是什么?
我正在考虑以某种方式检查被阻止的 IP,如下所示(PHP 和伪代码):
$user_ip = $_SERVER['REMOTE_ADDR'];
loop through returned rows {
if ($user_ip in returned row from MySQL table) {
forward to another domain
}
else // do something else...
}
但我正在处理 IP 组;不是单个IP。我一直在使用一些 CIDR 脚本和 ip2long 来反汇编和解析这些组。但这已被证明是困难的。
根据评论的建议,如果我将 IP 存储在数据库中,我可以直接比较。但是我正在处理的整个街区很大,我不确定这样做。在比较中,我将处理数百万个 IP...
关于如何最好地做到这一点的任何建议?