Exemplo n.º 1
0
<?php

use Engine\X;
require './cli/start.php';
$db = X::db();
$rows = $db->table('hulkx_ban_ip')->find();
$writetime = time();
require "libraries/ipip/ip.php";
foreach ($rows as $row) {
    $ip_address = '';
    if ($row['ip']) {
        if ($ipip = \libraries\ipip\Ip::find($row['ip'])) {
            $ip_address = implode($ipip);
        }
        list($ip_section1, $ip_section2, $ip_section3, $ip_section4) = explode('.', $row['ip']);
        $db->table('banip')->insert(['ban_time' => $row['ban_time'], 'valid_time' => $row['valid_time'], 'attack_amount' => 0, 'ip_address' => $ip_address, 'ip_section1' => $ip_section1, 'ip_section2' => $ip_section2, 'ip_section3' => $ip_section3, 'ip_section4' => $ip_section4]);
    }
}
print $db->table('banip')->count();
Exemplo n.º 2
0
 $tutu['process_time'] = $process_time;
 $tutu['ip'] = $post->client_ip;
 //请求日志
 X::module('post')->banLog($tutu);
 //IP是否被拦截
 $ipInfo = X::module('post')->whetherInBanip($post->client_ip);
 if ($ipInfo && $tutu['hit'] || $ipInfo && $ipInfo['valid_time'] > $now) {
     if ($tutu['hit']) {
         //看是否内容再次是非法,是就增加IP拦截时效
         if (!$ipInfo['valid_time'] || $ipInfo['valid_time'] < $now) {
             $valid_time = $now + 86400;
             //拦截一天
         } else {
             $valid_time = $ipInfo['valid_time'] + 43200;
         }
         X::db()->query("UPDATE banip \n\t\t\t\t\t\t\tSET valid_time = {$valid_time} ,\n\t\t\t\t\t\t\t\tattack_amount = attack_amount + 1\n\t\t\t\t\t\t\tWHERE ip_id = {$ipInfo['ip_id']}");
     }
     //统计命中率
     X::module('company')->statisticsHit($company['company_id']);
     apiOutput(YES, ['hit' => YES, 'dirty_works' => "ip({$post->client_ip})被拦截"]);
 }
 //命中脏词
 if ($tutu['hit']) {
     //统计命中率
     X::module('company')->statisticsHit($company['company_id']);
     //如果命中的词是公共库而且是要封ip的
     if ($tutu['depot'] === 2) {
         $dwRow = X::module('dirtyword')->byGlobal($tutu['dirty_id']);
         if ($dwRow['if_deny_id'] === 1) {
             X::module('post')->banIp($post->client_ip);
         }