Как взять ip адрес пользователя при входе на сайт?

В Yii фреймворке есть несколько способов получения IP-адреса пользователя при входе на сайт.

1. Использование свойства userHostAddress объекта Yii::$app->request->userIP:

$ip = Yii::$app->request->userIP; // получаем IP адрес пользователя

Свойство userHostAddress производит автоматическое определение IP-адреса пользователя, учитывая форварды, прокси-серверы и другие сетевые уровни.

2. Использование расширения 'mobiledetect/mobiledetectlib':

use DetectionMobileDetect; // подключаем расширение

$detect = new MobileDetect(); // создаем экземпляр класса MobileDetect

$ip = Yii::$app->getRequest()->getUserIp(); // получаем IP адрес пользователя

if ($detect->isMobile()) {
    // логика для мобильных устройств
} elseif ($detect->isTablet()) {
    // логика для планшетов
} else {
    // логика для десктопов
}

Расширение 'mobiledetect/mobiledetectlib' предоставляет удобные методы для определения типа устройства пользователя, а метод getUserIp() позволяет получить IP адрес пользователя с учетом прокси-серверов и форвардов.

3. Использование расширения 'yiisoft/yii2-geoip':

use yiigeoipIpGeo; // подключаем расширение

$ip = Yii::$app->getRequest()->getUserIp(); // получаем IP адрес пользователя

$reader = new yiigeoipIpGeo();
$location = $reader->getLocation($ip); // получаем информацию о местоположении пользователя

echo 'Страна: ' . $location->country;
echo 'Город: ' . $location->city;

Расширение 'yiisoft/yii2-geoip' позволяет получить информацию о местоположении пользователя по его IP адресу.

Таким образом, вы можете выбрать один из предложенных методов в зависимости от ваших потребностей и требований проекта.