【问题标题】:Serving different / dynamic content based on user's IP address根据用户的 IP 地址提供不同/动态的内容
【发布时间】:2012-12-08 05:41:14
【问题描述】:

假设我的 IP 地址是 x.x.x.1(纽约市),而您的 IP 地址是 x.x.x.2(洛杉矶)。

我访问了 mydomain.com/stuff,看​​到了关于“stuff”的帖子,但仅限于纽约地区(基于我的 IP 地址)。您访问 mydomain.com/stuff 并看到有关“stuff”的线程,但仅限于洛杉矶地区(基于您的 IP 地址)。

一般问题:使用 Ruby on Rails,如何使相同的 URL mydomain.com/stuff 根据访问者的 IP 地址显示动态内容?例如,我知道像 Monetate 这样的企业软件,它允许网站更改网站上的图像/文本,将夹克显示为纽约 IP 地址,而将泳装显示为夏威夷 IP 地址。

我目前的方法如下:我的“post”模型有字段:“user_id”、“content”、“ip”、“city”。我将使用 geokit-gem 从“ip”地址填充“城市”字段。从那里,我可以读取访问者的 IP 地址,推断他们的城市,并过滤页面内容以匹配访问者的城市。但是……

具体问题:我如何 (1) 获取访问者的 IP 地址,以及 (2) 通过路由将访问者的 IP 地址传递到管理“显示”操作的控制器中,这样我就可以根据城市过滤?

回答上述问题 #1-#2、识别我的一般方法中的缺陷并概述您自己的方法所获得的分数。

【问题讨论】:

    标签: ruby-on-rails geolocation ip


    【解决方案1】:

    您可以通过以下方式获取 IP:request.remote_ip

    你可以使用地理编码器https://github.com/alexreisner/geocoder

    检查这个 RailsCast http://railscasts.com/episodes/273-geocoder

    流程对我来说似乎不错,您可以按城市过滤帖子,也可以按附近位置过滤。

    【讨论】:

      猜你喜欢
      • 2016-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 2014-02-18
      • 2011-04-23
      • 2017-04-15
      相关资源
      最近更新 更多