一键注册登录,获悉互联网最新资源讯息!

返回列表 发布新帖
查看: 23|回复: 0

分享一个限制用户每分钟访问网站频率函数

累计签到:118 天
连续签到:15 天
灌水成绩
549 92 5809

等级头衔
U I D : 1
用户组 : 管理员

积分成就
威望 : 3
贡献 : 0
金钱 : 5067
在线时间 : 674 小时
注册时间 : 2024-11-25
最后登录 : 2025-4-10

荣誉勋章

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 4 天前 | 显示全部楼层 |阅读模式
function check_ip_frequency($limit = 5, $time_frame = 60) {
    // 获取用户的 IP 地址
    $user_ip = $_SERVER['REMOTE_ADDR'];
    $cookie_name = 'ip_access_times_' . md5($user_ip); // 使用 IP 地址生成唯一的 Cookie 名称

    // 获取当前时间
    $current_time = time();

    // 检查 Cookie 是否存在
    if (isset($_COOKIE[$cookie_name])) {
        // 解码 Cookie 中的访问时间数组
        $access_times = json_decode($_COOKIE[$cookie_name], true);
    } else {
        $access_times = []; // 初始化访问时间数组
    }

    // 清理过期的访问记录
    $access_times = array_filter($access_times, function($time) use ($current_time, $time_frame) {
        return ($current_time - $time) < $time_frame;
    });

    // 添加当前访问时间
    $access_times[] = $current_time;

    // 检查访问次数是否超过限制
    if (count($access_times) > $limit) {
        header("HTTP/1.1 404 Not Found");
        exit; // 终止脚本执行
    }

    // 更新 Cookie,设置过期时间为 $time_frame 秒
    setcookie($cookie_name, json_encode($access_times), $current_time + $time_frame, "/");
}

// 使用示例
check_ip_frequency(5, 60); // 限制每分钟最多访问 5 次

温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、如果有侵犯到您的权益,请第一时间联系邮箱 990037279@qq.com ,站长会进行审查,情况属实的会在三个工作日内为您删除。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

990037279@qq.com

如果有侵犯到您的权益,请第一时间联系邮箱,
站长会进行审查,情况属实的会在三个工作日内为您删除。
  • 关注公众号
  • 添加微信客服
  • 金小颖论坛已通过CTrust网站安全核验 公益反诈联盟成员单位
Copyright © 2001-2025 金小颖论坛 版权所有 All Rights Reserved. 使用 阿里妈妈 字体浙ICP备2022006091号-1
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表