flzta's picture
Upload 522 files
a4a352b verified
<?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;
}
}
}