| | <?php |
| |
|
| | namespace app\api\controller; |
| |
|
| | trait PublicApi |
| | { |
| | public function check_config() |
| | { |
| | if ($GLOBALS['config']['api']['publicapi']['status'] != 1) { |
| | echo 'closed'; |
| | die; |
| | } |
| |
|
| | if ($GLOBALS['config']['api']['publicapi']['charge'] == 1) { |
| | $h = $_SERVER['REMOTE_ADDR']; |
| | if (!$h) { |
| | echo lang('api/auth_err'); |
| | exit; |
| | } else { |
| | $auth = $GLOBALS['config']['api']['publicapi']['auth']; |
| | $this->checkDomainAuth($auth); |
| | } |
| | } |
| | } |
| |
|
| | private function checkDomainAuth($auth) |
| | { |
| | $ip = mac_get_client_ip(); |
| | $auth_list = ['127.0.0.1']; |
| | if (!empty($auth)) { |
| | foreach (explode('#', $auth) as $domain) { |
| | $domain = trim($domain); |
| | $auth_list[] = $domain; |
| | if (!mac_string_is_ip($domain)) { |
| | $auth_list[] = gethostbyname($domain); |
| | } |
| | } |
| | $auth_list = array_unique($auth_list); |
| | $auth_list = array_filter($auth_list); |
| | } |
| | if (!in_array($ip, $auth_list)) { |
| | echo lang('api/auth_err'); |
| | exit; |
| | } |
| | } |
| | } |