<?php
/**
 * Created by PhpStorm
 * Author: ihavoc
 * Date: 2020/11/22
 * Time: 16:46
 *
 */


namespace app\api\middleware;

class Ip
{
    public function handle($request, \Closure $next)
    {
        $request->ip = $this->get_ip();

        return $next($request);
    }
    /*
    * 获取用户真实IP地址
    */
    public function get_ip()
    {
        if(!empty($_SERVER['HTTP_CLIENT_IP'])){
            $cip = $_SERVER['HTTP_CLIENT_IP'];
        }
        else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
            $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
        }
        else if(!empty($_SERVER["REMOTE_ADDR"])){
            $cip = $_SERVER["REMOTE_ADDR"];
        }else{
            $cip = '';
        }
        preg_match("/[\d\.]{7,15}/", $cip, $cips);
        $cip = isset($cips[0]) ? $cips[0] : 'unknown';
        unset($cips);
        return $cip;
    }
}