/** * Returns the best possible IP of the current user, in the format A.B.C.D * * @return string ip */ public static function getIpString() { if (isset($_SERVER['HTTP_CLIENT_IP']) && ($ip = Piwik_Common::getFirstIpFromList($_SERVER['HTTP_CLIENT_IP'])) && strpos($ip, "unknown") === false) { return $ip; } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && ($ip = Piwik_Common::getFirstIpFromList($_SERVER['HTTP_X_FORWARDED_FOR']) && isset($ip) && !empty($ip) && strpos($ip, "unknown") === false)) { return $ip; } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && strlen(Piwik_Common::getFirstIpFromList($_SERVER['HTTP_CLIENT_IP'])) != 0) { return Piwik_Common::getFirstIpFromList($_SERVER['HTTP_CLIENT_IP']); } else { if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && strlen($ip = Piwik_Common::getFirstIpFromList($_SERVER['HTTP_X_FORWARDED_FOR'])) != 0) { return $ip; } elseif (isset($_SERVER['REMOTE_ADDR'])) { return Piwik_Common::getFirstIpFromList($_SERVER['REMOTE_ADDR']); } else { return '0.0.0.0'; } } }