PHP - 如何限制API?

时间:2017-01-27 13:59:42

标签: php mysql

我有一个自定义api页面。如何通过IP地址限制请求数量?

我需要PHP中的一些示例,我对此并不太熟悉。

我正在运行apache2服务器。

1 个答案:

答案 0 :(得分:0)

您可以获取调用API的人员的IP并将其上传到插入IP和提交时间的数据库中。然后,在您的API页面顶部,验证访问者的IP(我不确定这是否适用于cURL,但您可以使用$ _SERVER [' remote_addr'])如果它存储在数据库中,请验证是否从提交中传递了一个小时。在这种情况下,您可以删除记录。如果没有,请让访问者进行API调用并将其IP插入数据库。

<?php
$conn = new mysqli(host,user,password,database);
$sql = "SELECT * FROM ip";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
    if($row['ip'] == VISITOR'S IP) {
        --GET THE TIME OF THE IP SUBMISSION--
        if($time > 1hour) {
            $sql = "DELETE FROM ip WHERE ip="$row['ip'];
            --LET API WORK--
        }
    }
}
$sql = "INSERT INTO ip (ip) VALUES (--VISITOR'S IP--)";
$result = $conn->query($sql);
if(!$result) {
    echo "SQL Error : ".$sql."<br> Error : ".$conn->error;
}
else {
    $conn->close();
}
?>

我希望这会对你有所帮助。干杯!