From a58e5a5760ceee29062f3f2aafc732ec32614efe Mon Sep 17 00:00:00 2001 From: tpingzhang <635929049@qq.com> Date: Thu, 28 Nov 2019 06:58:09 +0800 Subject: [PATCH] real ip --- ThinkPHP/Common/functions.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/ThinkPHP/Common/functions.php b/ThinkPHP/Common/functions.php index 417f046e..39d74168 100644 --- a/ThinkPHP/Common/functions.php +++ b/ThinkPHP/Common/functions.php @@ -1449,22 +1449,26 @@ function load_ext_file($path) { * @param boolean $adv 是否进行高级模式获取(有可能被伪装) * @return mixed */ -function get_client_ip($type = 0,$adv=false) { +function get_client_ip($type = 0, $adv=true) { $type = $type ? 1 : 0; static $ip = NULL; if ($ip !== NULL) return $ip[$type]; if($adv){ - if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { + if (isset($_SERVER['HTTP_X_HWWAF_REAL_IP'])) { + $ip = $_SERVER['HTTP_X_HWWAF_REAL_IP']; + } elseif (isset($_SERVER['HTTP_X_REAL_IP'])) { + $ip = $_SERVER['HTTP_X_REAL_IP']; + } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $pos = array_search('unknown',$arr); if(false !== $pos) unset($arr[$pos]); $ip = trim($arr[0]); - }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { + } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; - }elseif (isset($_SERVER['REMOTE_ADDR'])) { + } elseif (isset($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR']; } - }elseif (isset($_SERVER['REMOTE_ADDR'])) { + } elseif (isset($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR']; } // IP地址合法验证