/** * Lists all users logged from the specified IP * * @return XenForo_ControllerResponse_Abstract */ public function actionIpUsers() { $ip = $this->_input->filterSingle('ip', XenForo_Input::STRING); $fetchOptions = array('join' => XenForo_Model_User::FETCH_USER_PROFILE); $ipDetails = XenForo_Helper_Ip::parseIpRangeString($ip); if (!$ipDetails) { return $this->responseMessage(new XenForo_Phrase('please_enter_valid_ip_or_ip_range')); } else { if ($ipDetails['isRange']) { $users = $this->_getUserModel()->getUsersByIpRange($ipDetails['startRange'], $ipDetails['endRange'], $fetchOptions); } else { $users = $this->_getUserModel()->getUsersByIp($ip, $fetchOptions); } } if ($users) { $viewParams = array('users' => $users, 'ip' => $ip, 'ipPrintable' => $ipDetails['printable']); return $this->responseView('XenForo_ViewAdmin_Users_IpUsers', 'ip_users', $viewParams); } else { return $this->responseMessage(new XenForo_Phrase('no_users_logged_at_ip')); } }
protected function _getIpRecord($ip) { $results = XenForo_Helper_Ip::parseIpRangeString($ip); if (!$results) { throw new XenForo_Exception(new XenForo_Phrase('please_enter_valid_ip_or_ip_range'), true); } return array($results['printable'], $results['binary'][0], $results['startRange'], $results['endRange']); }