Задача определения IP адреса пользователя достаточно часто встречается (например, для создания записи в логе), поэтому привожу в упрощенном виде свой метод.
/** * Получить данные из массива SERVER * @param null $key * @param null $default * @return null */ function getServer($key = null, $default = null) { if (null === $key) { return $_SERVER; } return (isset($_SERVER[$key])) ? $_SERVER[$key] : $default; } /** * Получить IP адрес клиента * @param boolean $proxy * @return string */ function getClientIp($proxy = true) { if ($proxy && getServer('HTTP_CLIENT_IP') != null) { $ip = getServer('HTTP_CLIENT_IP'); } else if ($proxy && getServer('HTTP_X_FORWARDED_FOR') != null) { $ip = getServer('HTTP_X_FORWARDED_FOR'); } else { $ip = getServer('REMOTE_ADDR'); } return $ip; }
Не делайте так! Доверяйте лишь заголовку REMOTE_ADDR
. Пруфлинк
Источник: https://www.kobzarev.com/programming/get-client-ip/