Третий вариант наиболее простой если вы используете GTM и например сайт у вас на Тильде или нет доступа к исходникам, или разработчик сайта тот ещё засранец и забил на ваши просьбы. Способ для тех кто хочет просто вставить код через GTM с минимальными движениями и забыть.
Кажется в первом способе будет неправильно определяться адрес клиента за прокси. Можно попробовать так, но тоже без 100% гарантии
public function getUserHostAddress(){
if (!empty($_SERVER['HTTP_X_REAL_IP']))
{
$ip=$_SERVER['HTTP_X_REAL_IP'];
}
elseif (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
Первый способ самый распространенный я не стал его особо описывать. Но да, вы правы, если за proxy, например если на серваке связка apache+nginx то тут без HTTP_CLIENT_IP и HTTP_X_FORWARDED_FOR не обойтись для определения реального IP адреса.
Тоже через php вставлял, хоть и не дружу с этим языком и разработчика не дёргал, нашел образец кода в поиске и заработало. Теперь зловредов по ip режу.
У меня не получается.
Спасибо! Второй способ помог.
Спасибо, третий способ отлично подошел !
У меня работает, но определяется примерно каждый 10-й IP адрес. Почему-то большинство не определяется.
Сайт на Тиьде. Ставила через GTM по третьему способу.