废话不懂说直接上代码,
if (getenv('HTTP_CLIENT_IP')) {
$GLOBALS['_guestIp'] = getenv('HTTP_CLIENT_IP');
} else if (getenv('HTTP_X_FORWARDED_FOR')) {
foreach (explode(',', getenv('HTTP_X_FORWARDED_FOR')) as $ip) {
if (!ip2long($ip) || ip2long($ip) >> 24 === 10 || ip2long($ip) >> 20 === 2753 || ip2long($ip) >> 16 === 49320) continue;
$GLOBALS['_guestIp'] = $ip;
break;
}
}
if (!isset($GLOBALS['_guestIp']) && getenv('REMOTE_ADDR')) $GLOBALS['_guestIp'] = getenv('REMOTE_ADDR');
思路也很简单,直接把获取到的真实ip地址写在全局变量$GLOBALS中,需要获取ip的地方直接用