thinkphp6如何获客户真实的IP

程序猿 2021-03-12 22:26:40 1671浏览 加载中

现在大部分网站会使用加速,thinkphp6中获取IP的方法 request()->ip获取到的IP会是代理IP,不是真实的。其实想要在thinkphp6中获取真实的IP,只需要在全局的公共文件中加入以下代码。

// 获取真实IP
if (!function_exists("get_real_ip")) {
    function get_real_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;
    }
}

然后在需要地方调用就可以了。

$ip = get_real_ip();


标签: thinkphp6
最后修改:2024-04-19 09:20:08

非特殊说明,本博所有文章均为博主原创。