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地址。