现在大部分网站会使用加速,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();