有没有办法从IP地址获取国家,城市(通常:地理位置信息)。请注意,我的应用程序是 java。
我访问并尝试了许多 Web 服务,但没有找到合适的,我更喜欢自己编写。此外,我发现了一些 CSV 数据库,但这个解决方案根本不是可取的。请帮忙。
有没有办法从IP地址获取国家,城市(通常:地理位置信息)。请注意,我的应用程序是 java。
我访问并尝试了许多 Web 服务,但没有找到合适的,我更喜欢自己编写。此外,我发现了一些 CSV 数据库,但这个解决方案根本不是可取的。请帮忙。
您只需要MaxMind 公司提供的GeoIP 。
他们提供免费的 GeoIP2 数据库 - GeoLite2和几个GeoIP2 API(感谢 karel),包括用于读取数据库文件的 Java API。
在 GeoIP2 之前,有 GeoIP,现在他们称之为GeoIP Lecacy,免费数据库和可从 maven.org或github下载的 Java 库仍然可用。
GeoIP Lecacy 将来可能会死,但是,现在,因为 GeoIP2 不提供 Java API 来读取数据库信息(例如GEO-533LITE 20150303 Build 1 Copyright (c) 2015 MaxMind Inc All Rights Reserved),所以我仍然在我的网站上使用它。我在 IRC 机器人中使用 GeoIP2 以从 GeoIP2 的多语言功能中受益。
每个国家/地区都有几个 IP 范围。
我不知道它的 Java 实现,但您可以使用http://services.ce3c.be/ciprg/的输出并创建自己的代码,根据 IP 地址给出国家/地区。