瀏覽代碼

remove(job/node-connector-limit)

兩足大貓貓 4 年之前
父節點
當前提交
c7f6eaef72
共有 4 個文件被更改,包括 8 次插入89 次删除
  1. 1 2
      resources/views/material/admin/ip/alive.tpl
  2. 0 85
      src/Command/Job.php
  3. 2 2
      src/Controllers/Mod_Mu/UserController.php
  4. 5 0
      src/Models/Ip.php

+ 1 - 2
resources/views/material/admin/ip/alive.tpl

@@ -20,7 +20,6 @@
                     <div class="card-main">
                         <div class="card-inner">
                             <p>IP 归属地查询(Powered by <a href="https://skk.moe" target="_blank">Sukka</a>)</p>
-
                             <iframe src="https://find-ip.skk.moe" allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr" sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts" style="width:100%;height:100px;border:0;border-radius:4px;overflow:hidden"></iframe>
                         </div>
                     </div>
@@ -39,4 +38,4 @@
     window.addEventListener('load', () => {
         {include file='table/js_2.tpl'}
     });
-</script>
+</script>

+ 0 - 85
src/Command/Job.php

@@ -226,91 +226,6 @@ class Job extends Command
      */
     public function CheckJob()
     {
-        //在线人数检测
-        $users = User::where('node_connector', '>', 0)->get();
-        $full_alive_ips = Ip::where('datetime', '>=', time() - 60)->orderBy('ip')->get();
-        $alive_ipset = array();
-        foreach ($full_alive_ips as $full_alive_ip) {
-            $full_alive_ip->ip = Tools::getRealIp($full_alive_ip->ip);
-            $is_node = Node::where('node_ip', $full_alive_ip->ip)->first();
-            if ($is_node) {
-                continue;
-            }
-
-            if (!isset($alive_ipset[$full_alive_ip->userid])) {
-                $alive_ipset[$full_alive_ip->userid] = new ArrayObject();
-            }
-
-            $alive_ipset[$full_alive_ip->userid]->append($full_alive_ip);
-        }
-
-        foreach ($users as $user) {
-            $alive_ips = ($alive_ipset[$user->id] ?? new ArrayObject());
-            $ips = array();
-
-            $disconnected_ips = explode(',', $user->disconnect_ip);
-
-            foreach ($alive_ips as $alive_ip) {
-                if (!isset($ips[$alive_ip->ip]) && !in_array($alive_ip->ip, $disconnected_ips)) {
-                    $ips[$alive_ip->ip] = 1;
-                    if ($user->node_connector < count($ips)) {
-                        //暂时封禁
-                        $isDisconnect = Disconnect::where('id', '=', $alive_ip->ip)->where(
-                            'userid',
-                            '=',
-                            $user->id
-                        )->first();
-
-                        if ($isDisconnect == null) {
-                            $disconnect = new Disconnect();
-                            $disconnect->userid = $user->id;
-                            $disconnect->ip = $alive_ip->ip;
-                            $disconnect->datetime = time();
-                            $disconnect->save();
-
-                            if ($user->disconnect_ip == null || $user->disconnect_ip == '') {
-                                $user->disconnect_ip = $alive_ip->ip;
-                            } else {
-                                $user->disconnect_ip .= ',' . $alive_ip->ip;
-                            }
-                            $user->save();
-                        }
-                    }
-                }
-            }
-        }
-
-        //解封
-        $disconnecteds = Disconnect::where('datetime', '<', time() - 300)->get();
-        foreach ($disconnecteds as $disconnected) {
-            $user = User::where('id', '=', $disconnected->userid)->first();
-
-            $ips = explode(',', $user->disconnect_ip);
-            $new_ips = '';
-            $first = 1;
-
-            foreach ($ips as $ip) {
-                if ($ip != $disconnected->ip && $ip != '') {
-                    if ($first == 1) {
-                        $new_ips .= $ip;
-                        $first = 0;
-                    } else {
-                        $new_ips .= ',' . $ip;
-                    }
-                }
-            }
-
-            $user->disconnect_ip = $new_ips;
-
-            if ($new_ips == '') {
-                $user->disconnect_ip = null;
-            }
-
-            $user->save();
-
-            $disconnected->delete();
-        }
-
         Ip::where('datetime', '<', time() - 300)->delete();
         UnblockIp::where('datetime', '<', time() - 300)->delete();
         BlockIp::where('datetime', '<', time() - 86400)->delete();

+ 2 - 2
src/Controllers/Mod_Mu/UserController.php

@@ -93,10 +93,11 @@ class UserController extends BaseController
         );
 
         $key_list_trojan = array(
-            'node_speedlimit', 'u', 'd', 'transfer_enable', 'id', 'node_connector', 'uuid', 'sha224uuid', 'alive_ip'
+            'node_speedlimit', 'u', 'd', 'transfer_enable', 'id', 'node_connector', 'uuid', 'alive_ip'
         );
 
         foreach ($users_raw as $user_raw) {
+            $user_raw->alive_ip = (new \App\Models\Ip)->getUserAliveIpCount($user_raw->id);
             if ($user_raw->transfer_enable <= $user_raw->u + $user_raw->d) {
                 if ($_ENV['keep_connect'] === true) {
                     // 流量耗尽用户限速至 1Mbps
@@ -116,7 +117,6 @@ class UserController extends BaseController
                 }
             }
             if ($node->sort == 14) {
-                $user_raw->sha224uuid = hash('sha224', $user_raw->uuid);
                 $user_raw = Tools::keyFilter($user_raw, $key_list_trojan);
             } elseif ($node->sort == 11) {
                 $user_raw = Tools::keyFilter($user_raw, $key_list_v2ray);

+ 5 - 0
src/Models/Ip.php

@@ -21,6 +21,11 @@ class Ip extends Model
         return $user;
     }
 
+    public function getUserAliveIpCount($userid)
+    {
+        return count(self::where('userid', '=', $userid)->where('datetime', '>=', time() - 60)->get());
+    }
+
     public function Node()
     {
         $node = Node::where('id', $this->attributes['nodeid'])->first();