use*_*086 3 geocoding ruby-on-rails ip-address ruby-on-rails-4
我知道我可以得到这样的用户IP地址:
remote_ip = request.remote_ip
Run Code Online (Sandbox Code Playgroud)
现在我想知道如何从他的IP地址找出用户的国家和城市?我发现这只买国家:
http://api.hostip.info/country.php
Run Code Online (Sandbox Code Playgroud)
城市可以这样找到:
http://api.hostip.info
Run Code Online (Sandbox Code Playgroud)
问题是它没有正确显示城市.我目前在世界上最大的城市之一,它说这是一个未知的城市.
从他的IP地址中找出用户所在国家和城市的最佳方法是什么?我正在寻找一个免费的解决方案或至少非常便宜的东西.
谢谢 :)
two*_*ves 10
你可以尝试geocoder gem来获取ip地址的位置:
Geocoder.search('5.18.186.107').first.city # => "Saint Petersburg"
Geocoder.search('213.180.204.26').first.country # => "Turkey"
Run Code Online (Sandbox Code Playgroud)
甚至使用没有过渡动作的内置功能:
# somewhere in your action
result = request.location # returns Geocoder::Result object
Run Code Online (Sandbox Code Playgroud)
默认情况下,它使用http://freegeoip.net/服务进行IP解析,因此如果您不想使用任何其他宝石,可以使用REST API与它进行通信.
| 归档时间: |
|
| 查看次数: |
5035 次 |
| 最近记录: |