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']; }
public function parse(&$ipc) { $this->app_entry->parse($ipc); $page_cnt = $ipc->read_unpack_u32(); for ($j = 0; $j < $page_cnt; $j++) { $conn_item = new ConnectionEntry(); $conn_item->parse($ipc); if (array_key_exists($conn_item->lan_ip, $this->users)) { $user_item = $this->users[$conn_item->lan_ip]; $user_item->flow_count += 1; $user_item->stat->add($conn_item->stat); $user_item->connections[] = $conn_item; $this->users[$conn_item->lan_ip] = $user_item; } else { $user_item = new ApplicationUserEntry(); $user_item->lan_ip = $conn_item->lan_ip; $user_item->user_name = \OrgController::findUsernameByIp($conn_item->lan_ip); $user_item->flow_count = 1; $user_item->stat = $conn_item->stat; $user_item->connections[] = $conn_item; $this->users[$conn_item->lan_ip] = $user_item; } } }