PHP 代码示例,用于限制访问次数:
<?php
// 设置时间段和最大访问次数
$duration = 60; // 时间段(单位:秒),这里设置为一分钟
$max_requests = 10; // 最大访问次数
// 获取当前时间和客户端 IP 地址
$current_time = time();
$client_ip = $_SERVER['REMOTE_ADDR'];
// 读取客户端访问记录文件
$record_file = 'access_records.txt';
$records = array();
if (file_exists($record_file)) {
$data = file_get_contents($record_file);
$records = unserialize($data);
}
// 删除超时的访问记录
foreach ($records as $ip => &$access) {
foreach ($access as $timestamp => $count) {
if ($current_time - $timestamp > $duration) {
unset($access[$timestamp]);
}
}
}
// 统计客户端在时间段内的访问次数
if (!isset($records[$client_ip])) {
$records[$client_ip] = array();
}
$access_count = count($records[$client_ip]);
// 判断是否超过最大访问次数
if ($access_count >= $max_requests) {
header('HTTP/1.1 429 Too Many Requests');
echo 'Error: Too Many Requests';
exit;
}
// 记录当前访问时间
$records[$client_ip][$current_time] = 1;
// 保存客户端访问记录文件
$data = serialize($records);
file_put_contents($record_file, $data);
// 正常处理请求
echo 'Hello World!';
?>
这段代码首先设置了时间段和最大访问次数,然后获取当前时间和客户端 IP 地址。接着,它从访问记录文件中读取客户端的访问记录,并删除超时的访问记录。然后统计客户端在时间段内的访问次数,如果超过最大访问次数,则返回 429 Too Many Requests 错误码,否则继续处理请求,并记录当前访问时间。
需要注意的是,这只是一个简单的示例代码,实际应用中还需要考虑很多方面,比如访问记录文件的路径和权限、访问记录格式等等。另外,为了防止恶意攻击和滥用,建议在服务器配置中限制并发连接数和访问频率。

相关文章
某度使用cookie直接登录的代码
进入百度贴吧界面,按F12,呼出下方界面,选择Console选项,然后在下面粘贴登录代码,回车,再刷新界面,就登录成功了! javascript:documen …
神马获取Authkey按钮提交成功方法(来自于网友)
Authkey无法获取的可以在页面<head>下插入 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> …
小旋风蜘蛛池pro版本文章入库python代码(qq好友提供)
import requests import glob import os from concurrent.futures import ThreadPoolExecutor files = glob.glob('./文章/*.txt') HEADERS = …
WordPress网站绑定多个域名,不进行跳转到一个域名
要实现 WordPress 网站绑定多个域名,同时不跳转访问同一网站,您可以按照以下步骤进行设置: 编辑WordPress站点的 wp-config.php 文件,在 …
Centos7.x 一键挂载磁盘到www
挂载磁盘执行以下命令: yum install wget -y && wget -O auto_disk.sh http://download.bt.cn/tools/auto_disk.sh && bash …