public function parse(&$ipc, $with_terminal_type = true) { $this->lan_mac = sprintf('%02x:%02x:%02x:%02x:%02x:%02x', $ipc->read_unpack_u8(), $ipc->read_unpack_u8(), $ipc->read_unpack_u8(), $ipc->read_unpack_u8(), $ipc->read_unpack_u8(), $ipc->read_unpack_u8()); $this->lan_ip = long2ip($ipc->read_unpack_u32()); $this->stat->parse($ipc); $this->flow_count = $ipc->read_unpack_u32(); if ($with_terminal_type) { $this->terminal_type = $ipc->read_unpack_u8(); } // TODO 如果将这些信息改为由triton发送出来,是否效率更高 $userinfo = \OrgController::findUserinfoByIp($this->lan_ip); $this->user_name = $userinfo['user_name']; $this->user_desc = $userinfo['user_desc']; $this->parent_group = $userinfo['parent_group']; $this->auth_type = $userinfo['auth_type']; $this->login_type = $userinfo['login_type']; $this->login_time = $userinfo['login_time']; $this->update_time = $userinfo['update_time']; $this->is_disabled_internet_access = $userinfo['is_disabled_internet_access']; }