Как получить клиент IP?
-
14-12-2019 - |
Вопрос
Пока это звучит глупо, я не смог найти способ получить IP клиента в Play 2.0.Он был доступен в 1.2.x как Http.Request.remoteAddress
, но 2.0 (я в первую очередь проверил SCALA API, но я тоже проделал быструю проверку Java Only), только предоставляет информацию о стороне сервера в play(.api).mvc.Request
.Есть ли что-то, что мне не хватает?Ближайший взломать, который я могу подумать, о правой, теперь устанавливает его за обратным прокси-сервером, а затем проверять X-Forwarded-For
, но это не работает слишком хорошо в разработке.
Решение
Редактировать: возвращение к этому ответу, это было добавлено в PlayFramework 2.0.2: см. Объявление о выпуске на http://groups.google.com/forum/#!msg/play-framework/z97gq2vnr5m/t-stgaeun68j%5b1-25%5d и что более важно Документация API в http://www.playframework. org / Документация / API / 2.0.2 / Scala / index.html # Play.api.mvc.request
Как вы можете видеть, теперь поддерживается поддержка Request.remoteAddress
Оригинал:
В настоящее время в трекере открывается ошибка: HTTPS: // Play .LightHouseApp.com / Проекты / 82401 / Билеты / 256-Add-Back-requestheaderremoteaddress
Я думаю, что взлома библиотек Play2.0, чтобы включить связанный патч, в настоящее время лучшее ставку. Вероятно, это все еще более чище, чем использовать прокси с единственной целью добавления заголовков XFF и используя их для определения IP.
Другие советы
Пожалуйста, проверьте этот проект GitHub в https://github.com/orefalo/play2-xforward
Я взял код из PLAY1 и портировал его в Play2, он должен работать то же самое.
Все еще работа в процессе ...