Rails GeoIP 返回国家/城市列表

Posted

技术标签:

【中文标题】Rails GeoIP 返回国家/城市列表【英文标题】:Rails GeoIP return country/city list 【发布时间】:2012-10-09 06:32:57 【问题描述】:

所以,我正在尝试通过 GeoIP gem 使用 Maxmind GeoLiteCity.dat:https://github.com/cjheath/geoip 而且,困扰我的是:我怎么可能返回所有国家的列表(这很容易,因为那里有一个适当的 YAML 文件)和城市 - 但我不知道如何阅读城市列表.我所知道的是它们以某种方式存储在这个 .dat 文件中

谁能帮我解决这个问题?我应该在哪里以及如何看?

【问题讨论】:

【参考方案1】:

.dat 文件是一种数据库文件,其中内容以表格形式存储,但以压缩形式存储。只需找出哪些列是指国家和城市。在以下链接中,有类似的问题:

Ruby sorting a .dat file by column

How can I handle large files in Ruby?

Getting a user country name from originating IP address with Ruby on Rails

参考以上链接并修改代码以满足您的需要。

【讨论】:

除了添加几个链接之外,您能否提供一些工作代码并对其进行评论? 谢谢。肯定会看一下,但是,也许有人可以提供一个工作代码示例? 刚刚发现这个问题已经在 *** 中得到解答。这是链接:***.com/questions/12293211/… 好吧,readlines 输出一些奇怪的东西(奇怪的格式)。现在怎么解密呢?呃,但再次感谢 如果你读取.dat文件,你可以使用.city 获取城市属性。有关详细信息,请参阅此链接:rubydoc.info/gems/geoip/1.1.2/GeoIP/City。否则,您读取 .csv 文件,可以使用 readline 等普通读取操作,然后根据定义的格式进行解析。

以上是关于Rails GeoIP 返回国家/城市列表的主要内容,如果未能解决你的问题,请参考以下文章

Django GeoIP按城市名称获取国家

GeoIP IPv4 数据库返回不正确的国家代码 - 需要 GeoIP 更新?

maxmind free geoip DB返回错误的国家/地区

Laravel 创建自己的 Facade 扩展 geoip 根据 IP 获取国家地域城市信息

GeoIP 已安装/已加载,但未返回记录

MaxMind GeoIP City 返回不正确的经纬度