Ruby on rails 需要请求中的国家名称或ip_地址
我已经搜索了堆栈溢出,但没有找到任何与之相关的答案 通过下面的一行,我们可以得到请求的ip地址Ruby on rails 需要请求中的国家名称或ip_地址,ruby-on-rails,ruby,ruby-on-rails-3,ip,ip-address,Ruby On Rails,Ruby,Ruby On Rails 3,Ip,Ip Address,我已经搜索了堆栈溢出,但没有找到任何与之相关的答案 通过下面的一行,我们可以得到请求的ip地址 request.remote_ip 它的工作良好的ip地址,并给我正确的ip地址的远程机器 但是对于位置,它没有给我正确的位置 request.location 在上面这一行中,我得到的数据如下 #<Geocoder::Result::Freegeoip:0xb47eae8c @data={"ip"=>"192.168.1.183", "country_code"=>"RD",
request.remote_ip
它的工作良好的ip地址,并给我正确的ip地址的远程机器
但是对于位置,它没有给我正确的位置
request.location
在上面这一行中,我得到的数据如下
#<Geocoder::Result::Freegeoip:0xb47eae8c @data={"ip"=>"192.168.1.183", "country_code"=>"RD", "country_name"=>"Reserved", "region_code"=>"", "region_name"=>"", "city"=>"", "zipcode"=>"", "latitude"=>0, "longitude"=>0, "metro_code"=>"", "areacode"=>""}, @cache_hit=nil>
“192.168.1.183”、“国家代码”=>“RD”、“国家名称”=>“保留”、“地区代码”=>,“地区名称”=>,“城市”=>,“zipcode”=>,“纬度”=>0,“经度”=>0,“地铁代码”=>,“地区代码”=>,@cache\u hit=nil>
但是ip地址目前在印度,它给了我一个国家名“保留”
任何一位帮助者都会义无反顾地感谢我不是Ruby程序员,而是PHP。但我怀疑Ruby是否有一种天生的方式知道IP地址位于哪个国家。从如下站点尝试API:使用
geoip
gem
有关更多详细的答案,请访问此网站
如果不想使用gem,请使用以下简单代码:--
好的,这是您可以参考的示例代码
这里您使用的是C类IP地址,LAN IP地址,因此它可能会提供保留的国家代码。那么我应该提供什么?请您建议我获取正确的国家名称。是的,我已经尝试过了,但它在您的PC中没有找到.dat文件。请使用此区域设置=Timeout::Timeout(5){Net::HTTP.get\u response(URI.parse当我使用我的ip地址时,你可以知道你的ip地址,它可能以122.xxx.xxx.xxx开始,使用我使用的ip并在响应1.9.2-p320:005>中得到“IN”>locale=Timeout::Timeout(5){Net::HTTP.get\u response(URI.parse('+'124.xxx.xxx'))。body}rescue“US”=>“IN”连接被拒绝-连接(2)
require 'net/http'
locale = Timeout::timeout(5) { Net::HTTP.get_response(URI.parse('api.hostip.info/country.php?ip='; + request.remote_ip )).body } rescue "US"