У меня есть испанский веб-сайт, и я не разрешаю людям из неевропейских стран регистрироваться и входить в систему.
Некоторое время назад я начал получать сообщения от пользователей, которые не могут войти в систему. Когда я спрашиваю их IP-адрес, они говорят что-то вроде: 66.249.93.202. Это IP-адрес Google. Как они получают его в своих мобильных телефонах? Что им нужно сделать, чтобы использовать свой настоящий IP-адрес?
Вы видите адрес прокси-сервера Google.
Мобильные пользователи с браузером Chrome (Android или iOS), у которых включены функции управления пропускной способностью, часто будут рассматриваться как использующие один из этих адресов в качестве запрашивающей стороны как описано здесь.
По сути, данные, которые вы обслуживаете, запрашиваются прокси-сервером сжатия данных Google, optimized
и отправлены обратно конечному пользователю.
Что им нужно сделать, чтобы использовать свой настоящий IP-адрес.
Они не должны делать ничего по-другому.
Вы можете проверить x-forwarded-for
заголовок, как объяснено в ранее связанной документации.
Вероятно, они используют прокси для сжатия данных Google (https://developer.chrome.com/multidevice/data-compression).
И чтобы ответить на ваш вопрос (с той же страницы):
Как владельцу сайта выполнить геотаргетинг по IP?
IP-адрес мобильного устройства пересылается на сервер назначения через заголовок X-Forwarded-For. Владельцы сайтов должны проверить этот заголовок, чтобы правильно определить местоположение пользователя на основе IP-адреса клиента.
Вы можете получить IP-адрес пользователя напрямую, если вы просто обслуживайте сайт по HTTPS.
Вы, наверное, все равно должны это делать - тем более, что вы упомянули, что это страницы входа и регистрации.
Цитата со страницы прокси сжатия данных, упомянутой в других ответах:
Оптимизирован ли мой защищенный трафик прокси-сервером сжатия?
Нет, прокси-сервер сжатия данных работает с незашифрованным трафиком: запросы HTTPS отправляются непосредственно с мобильного устройства на целевой сервер.
Возможно, эти пользователи используют Chrome (мобильный) с прокси-сервером сжатия данных ( https://developer.chrome.com/multidevice/data-compression )
Ты можешь использовать X-Forwarded-For
HTTP-заголовок для определения местоположения пользователя на основе исходного IP-адреса пользователя (см. FAQ)
У меня такая же проблема. Но я не получил настоящего IP X-Forwarded-For
У меня включена функция сохранения данных, но индекс X-Forwarded-For не установлен для информации заголовка. Также я проверил индекс HTTP_X_REAL_IP. Он также устанавливается с IP-адресом Google.
Наконец я нашел правильный IP в индексе HTTP_FORWARDED
ценность как for=203.192.231.124
echo $_SERVER['HTTP_FORWARDED']
Так что просто удалите текст for=
от значения, и вы получите IP.
$ip = str_replace('for=','', $_SERVER['HTTP_FORWARDED']);