PHP网站后台新增地区登录限制代码

function getIPs(){
    global $_C;
 
    if(empty($_C['client_ip'])) {
        if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
            $client_ip = getenv('HTTP_CLIENT_IP');
        } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
            $client_ip = getenv('HTTP_X_FORWARDED_FOR');
        } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
            $client_ip = getenv('REMOTE_ADDR');
        } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
            $client_ip = $_SERVER['REMOTE_ADDR'];
        }
        $_C['client_ip'] = $client_ip ? $client_ip : 'unknown';
     }
     return $_C['client_ip'];
}

//查询IP所在城市
function chaIPs(){
    $ip = getIPs();
    $host = "https://cz88geoaliyun.cz88.net/search/ip/geo";
    $method = "POST";
    $appcode = "0169cc17ba7d4f44b1683bf0a7774d88";
    $headers = array();
    array_push($headers, "Authorization:APPCODE " . $appcode);
    //根据API的要求,定义相对应的Content-Type
    array_push($headers, "Content-Type".":"."application/json; charset=UTF-8");
    $querys = "ip={$ip}";
    $bodys = "null";
    $url = $host . "?" . $querys;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, true);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    $ret = curl_exec($curl);
    curl_close ( $curl );
    //截取{}中的字符串
    $ret = substr($ret, strpos($ret, '{"code"'),strlen($ret));
    //转化为json数据
    $ret = json_decode($ret);
    return $ret->data->city;
}
//判断登录IP所在城市是否相符
header("Content-type: text/html; charset=utf-8");
$cs = chaIPs();
$yzcs = "/(淄博)/i";//这里设置IP所在的城市
if (!preg_match($yzcs, $cs)){
    header('location: /404.html');
}

 

版权声明:
作者:鲤小牛
链接:https://yunweiba.com/170.html
来源:运维吧
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>