function getip () {
static $ip = '';
$ip = $_SERVER ['REMOTE_ADDR'];
if (isset ($_SERVER ['HTTP_CDN_SRC_IP'])) {
$ip = $_SERVER ['HTTP_CDN_SRC_IP'];
} elseif (isset ($_SERVER ['HTTP_CLIENT_IP']) && preg_match ('/^ ( [0-9] {1,3}\\.) {3} [0-9] {1,3}$/', $_SERVER ['HTTP_CLIENT_IP'])) {
$ip = $_SERVER ['HTTP_CLIENT_IP'];
} elseif (isset ($_SERVER ['HTTP_X_FORWARDED_FOR']) AND preg_match_all ('#\\d {1,3}\\.\\d {1,3}\\.\\d {1,3}\\.\\d {1,3}#s', $_SERVER ['HTTP_X_FORWARDED_FOR'], $matches)) {
foreach ($matches [0] AS $xip) {
if (!preg_match ('#^ (10|172\\.16|192\\.168)\\.#', $xip)) {
$ip = $xip;
break;
}
}
}
return $ip;
}
这个函数可以获取用户的IP地址,包括使用CDN的情况。你可以在你的PHP代码中调用这个函数来获取IP地址。