File size: 1,246 Bytes
a4a352b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?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;
}
}
} |