RubyonRails——用户IP与实际设备IP不同



我正在heroku服务器上用ruby on rails构建一个网站,根据用户的位置向用户提供内容。我使用ipinfo_io通过request.env['ipinfo'].ip&request.env['ipinfo'].loc然后,我通过ruby地理编码器gem对request.env['ipinfo'].loc进行地理编码。我正在使用谷歌api对位置进行地理编码。

这一切都很顺利。我遇到问题的地方是当我提取ip地址时。在我的家庭设备上查看日志和测试,GET请求是在与我的家庭装置不同的IP地址上完成的。

我的家庭设备ip将是136.xx.xx.xxx,GET请求ip将是198.xx.xx.xsx,这与我目前的位置相去甚远。我如何设置我的环境以获取正确的ip?

我已经将日志与我的正确ip和GET ip:放在下面

info method=GET path="/favicon.ico" host=www.example.com fwd="136.xx.xx.xxx,172.xx.xx.xx" dyno=web.1 connect=1ms service=8ms status=200 bytes=143 protocol=https
INFO -- : Started GET "/" for 198.xx.xx.xx at 2021-04-07 17:49:01 +0000

Rails版本6.0.3.4ruby 2.6.3版

您尝试过request.remote_ip吗?

https://apidock.com/rails/ActionDispatch/Request/remote_ip

最新更新