乎学技术的logo图标

乎学技术

乎学技术是一个草根个人博客网站

  • 寻梦xunm的头像

    寻梦xunm

    无语了,垃圾评论防不胜防。

    评论

    3天前

  • 寻梦xunm的头像

    寻梦xunm

    又有大佬开始帮忙除草了,各种垃圾评论广告。

    评论

    4天前

  • 寻梦xunm的头像

    寻梦xunm

    解封了,双十一的快递什么时候才能到。

    评论

    5天前

  • 寻梦xunm的头像

    寻梦xunm

    小小的更新一下排版模式

    评论

    1周前

  • 寻梦xunm的头像

    寻梦xunm

    终于没有人每天刷评论了,真清净。

    评论

    1周前

  • 寻梦xunm的头像

    寻梦xunm

    好久没有停过电了,今天一大早上就停电了,好像是在换重新架设安装电线。

    评论

    2周前

广告空位,广告空位。
  • PHP防止恶意频繁刷新,自动加ip黑名单禁止访问

  • 寻梦xunm的头像

    于 2021-09-20 更新

    刷新防止黑名单

    温馨提示:
    本文最后更新于2021年09月20日,已超过444天没有更新,若内容或图片失效,请留言反馈。

    065c4a05bd7a600cd5c15270e414df56.png
    代码如下:
    [hide]

    <?php
    $ip = get_client_ip_extend();//获取当前访问者的ip
    $logFilePath = '/ippath/';//日志记录文件保存目录
    $fileht = '.htaccess2';//被禁止的ip记录文件
    $allowtime = 60;//防刷新时间
    $allownum = 10;//防刷新次数
    $allowRefresh = 120;//在允许刷新次数之后加入禁止ip文件中
    if (!file_exists($fileht)) {
        file_put_contents($fileht, '');
    }
    $filehtarr = @file($fileht);
    if (in_array($ip . &quot;\r\n&quot;, $filehtarr)) {
        $message = '警告:你的IP已经被禁止了!';
        if ($type === 'API') {
            return $message;
        }
        $this->error($message);
    }
    //加入禁止ip
    $time = time();
    $fileforbid = $logFilePath . 'forbidchk.dat';
    if (file_exists($fileforbid)) {
        if ($time - filemtime($fileforbid) > 30) {
            @unlink($fileforbid);
        } else {
            $fileforbidarr = @file($fileforbid);
            if ($ip == substr($fileforbidarr[0], 0, strlen($ip))) {
                if ($time - substr($fileforbidarr[1], 0, strlen($time)) > 120) {
                    @unlink($fileforbid);
                } else if ($fileforbidarr[2] > $allowRefresh) {
                    file_put_contents($fileht, $ip . "rn", FILE_APPEND);
                    @unlink($fileforbid);
                } else {
                    $fileforbidarr[2]++;
                    file_put_contents($fileforbid, $fileforbidarr);
                }
            }
        }
    }
    //防刷新
    $str = '';
    $file = $logFilePath . 'ipdate.dat';
    if (!file_exists($logFilePath) &amp;&amp; !is_dir($logFilePath)) {
        mkdir($logFilePath, 0777);
    }
    if (!file_exists($file)) {
        file_put_contents($file, '');
    }
    $uri = $_SERVER['REQUEST_URI'];//获取当前访问的网页文件地址
    $checkip = md5($ip);
    $checkuri = md5($uri);
    $yesno = true;
    $ipdate = @file($file);
    foreach ($ipdate as $k => $v) {
        $iptem = substr($v, 0, 32);
        $uritem = substr($v, 32, 32);
        $timetem = substr($v, 64, 10);
        $numtem = substr($v, 74);
        if ($time - $timetem < $allowtime) {
            if ($iptem != $checkip) {
                $str .= $v;
            } else {
                $yesno = false;
                if ($uritem != $checkuri) {
                    $str .= $iptem . $checkuri . $time . "rn";
                } else if ($numtem < $allownum) {
                    $str .= $iptem . $uritem . $timetem . ($numtem + 1) . "rn";
                } else {
                    if (!file_exists($fileforbid)) {
                        $addforbidarr = array($ip . "rn", time() . "rn", 1);
                        file_put_contents($fileforbid, $addforbidarr);
                    }
                    file_put_contents($logFilePath . &#39;forbided_ip.log&#39;, $ip . '--' . date('Y-m-d H:i:s', time()) . '--' . $uri . "rn", FILE_APPEND);
                    //$timepass = $timetem + $allowtime - $time;
                    $message = '警告:不要刷新的太频繁!';
                    if ($type === 'API') {
                        return $message;
                    }
                    $this->error($message);
                }
            }
        }
    }
    if ($yesno) {
        $str .= $checkip . $checkuri . $time . "rn";
    }
    file_put_contents($file, $str);
    ?>
    

    [/hide]

    教程分享

    1年前 4 条评论 922 阅

  1. 123的头像
    123LV.1 3个月前 Windows 10 ·  Google Chrome
    回复

    这个平了?

    1. 寻梦xunm的头像
      寻梦xunm博主 3个月前 Windows 7 ·  FireFox
      回复
      @123

      不懂什么意思

  2. 123456的头像
    123456LV.1 9个月前 Windows 10 ·  Google Chrome
    回复

    加油

  3. 11的头像
    11LV.1 10个月前 Windows 10 ·  Google Chrome
    回复

    加油

请输入13+5的计算结果: