| <?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; |
| } |
| } |
| } |