限制同IP频繁访问网站:设置一个有过期时间的次数统计

news/2025/3/31 3:09:33/文章来源:https://www.cnblogs.com/youantianqin/p/18797753

<?php

// 连接 Redis(需要安装 Redis 扩展)
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
// 认证 Redis 密码
$redis->auth('123456'); // 请替换为你的实际 Redis 密码

$ip = $_SERVER['REMOTE_ADDR']; // 获取访客 IP

$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
// $key = "ip_limit:$ip"; // 生成 Redis 键名//整站
$key = "ip_limit:{$ip}:{$path}"; // 按接口路径区分

$limit = 100; // 允许的最大请求数
$timeWindow = 60; // 统计时间窗口(秒)
// echo $ip;

// 获取当前 IP 的访问次数
$count = intval($redis->get($key));

if ($count === false) {
// 如果没有记录,则初始化
$redis->set($key, 1, $timeWindow);
} elseif ($count >= $limit) {
// 如果超限,则拒绝访问
http_response_code(403);
die("访问过于频繁,请稍后再试。");
} else {
// 增加访问计数
$redis->incr($key);
}
// echo $count;

// 业务逻辑代码
echo $count ."次,正常访问:" . date('Y-m-d H:i:s');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/907070.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

瑞芯微嵌入式方案概述

瑞芯微(Rockchip)是一家专注于高性能、低功耗芯片设计的中国半导体公司,其嵌入式解决方案广泛应用于智能终端、物联网、工业控制、多媒体处理等领域。以下是瑞芯微嵌入式方案的核心特点、典型应用及开发资源的总结: 一、瑞芯微嵌入式处理器系列 瑞芯微的芯片基于ARM架构,覆…

ggplot2中绘制渐变色的散点图

001、library(ggplot2)data <- data.frame(x = rnorm(100), y = rnorm(100) )ggplot(data, aes(x = x, y = y, color = y)) +geom_point(size = 3) +scale_color_gradient(low = "blue", high = "red") 。

raid级别、存储连接方式

硬盘越大,一搬转速越慢。还有看高速缓存 磁盘阵列能够容纳多少块硬盘 绝对磁盘存储柜的最大存储空间 raid提高吞吐量,保护数据 磁盘阵列柜支持哪些raid级别 raid卡上有缓存 数据先写到磁盘阵列的控制卡,再写到硬盘上 所以如果磁盘阵列卡如果断掉会导致数据丢失,一般磁盘阵列…

根据 2025 年全国青少年信息素养大赛官方通知:算法创意实践挑战赛(C++ 语言)小学组

根据 2025 年全国青少年信息素养大赛官方通知,算法创意实践挑战赛(C++ 语言)小学组的报名时间和考试时间安排如下: 报名时间 2025 年 1 月 10 日至 2025 年 4 月 22 日(具体截止时间以官方报名平台显示为准)。 考试时间初赛:2025 年 5 月(具体日期待定,需关注赛前通知…

众为兴机器人常用技巧

管理员密码 26722719 干涉空间信号设置系统信号配置

R语言中ggplot绘图去除灰色背景并保留外围框线

001、R语言中ggplot绘图去除灰色背景并保留外围框线library(ggplot2)data <- data.frame(x = rnorm(10),y = rnorm(10) )ggplot(data, aes(x = x, y = y)) +geom_point() +theme(panel.background = element_blank(), ## 去除灰色背景axis.line = element_line(colou…

机器学习优化算法

优化算法——SGD、Momentum、Adagrad、RMSprop、Adam、AdamW统一数学表达:设损失函数为$\mathcal{L}(\theta) $,学习率为$\eta$。每次迭代仅使用一个随机小批量(mini-batch)数据计算梯度。 从训练集中采样包含小批量$m$个样本${x{(1)},\cdots,x{(m)}}$,其对应的目标为${y{…

数码管静态显示

前言 目标 控制LED数码管,静态显示数字 原理 51 单片机的 LED 数码管有8个 每个数码管又由 8 个数码段组成选择要点亮的 LED 数码管的位置, 一共8个位置点亮特定 LED 数码管的数码段, 通过不同的组合,从而显示出想要的字符效果图参考资料 [4-1]静态数码管显示 位码 一共是8个…

上线Steam好评如潮!《刺客信条:影》真被玩家骂到逆袭了?

发售前被喷成筛子,上线后直接真香? 最近Steam玩家圈被《刺客信条:影》彻底刷屏了!虽然预告片公布时因为黑人武士主角、历史细节争议被疯狂吐槽,但游戏上线后却上演大型打脸现场——Steam好评率飙到77%,首周销量直接冲进全球热销榜TOP3,连日本玩家都直呼“忍者跑图太带感…