元刷新 IP 地址每 3 个 IP 地址重定向一次

Meta Refresh IP Address Redirect Once Every 3 IP Addresses

在尝试了几个论坛并在 Stack Overflow 上搜索了至少 80 个问题以获得某种答案后,我现在来到 Whosebug,所以请不要将其标记为垃圾邮件。

我希望每个 IP 地址只激活一次 META REFRESH 重定向,并且是三分之一的用户。

因此,每 3 个用户中就有 1 个使用 META REFRESH 进行重定向,但这些 IP 地址永远不会再被重定向。

这种脚本可行吗?

您可以使用 memcached 之类的工具来跟踪每三个访问者。 Memcache::increment

这会帮助你。您可以检查增量值 % 3 == 0.

要跟踪已重定向的用户,您有 2 种可能的解决方案:

1 - 在客户端使用 cookie。

2 - 使用 mysql table 并将重定向的 ip 放在那里。

你会想把它分解成任务,但这是可行的。 一些警告: IP 地址可以更改或共享(想想大学),但这可能适合您的目标。

  1. 检查IP地址之前是否被重定向
  2. 使用随机检查来确定它是否是三分之一
  3. 如果它以某种方式记录下来。此示例将其记录到文件中。

我在这里注释掉了一些对调试有用的东西:

// print_r($_SERVER);
$ineligibleIP=file_get_contents('reddit.txt');
//echo $ineligibleIP;
//echo $_SERVER['REMOTE_ADDR'];
if (strpos($ineligibleIP,$_SERVER['REMOTE_ADDR']) === false) {
    //echo 'Eligible';
    $test=rand(1,3);
    // echo $test;
    if($test==1) {
        $ineligibleIP.=$_SERVER['REMOTE_ADDR']."\n";
        file_put_contents('reddit.txt', $ineligibleIP);
        header('Location: https://www.google.com');
    }
}
echo "Yay, not redirected.";