Java中的地理位置IP

有没有办法从IP地址获取国家,城市(通常是:地理定位信息)。 请注意,我的应用程序是java。

我访问并尝试了许多Web服务,但我找不到合适的服务,我更喜欢自己编写。 此外,我发现了一些CSV数据库,但这个解决方案根本不可取。 请帮忙。

您所需要的只是GeoIP ,由MaxMind公司提供。

他们提供免费的GeoIP2数据库 – GeoLite2和几个GeoIP2 API (感谢karel ),包括Java API,也可以读取数据库文件。

  • 文件
  • Java API
  • 可下载的Java库
  • 来自maven.org的可下载的Java库 ,我最喜欢的:),你需要下载com.maxmind.db和com.maxmind.geoip2 。

在GeoIP2之前,有GeoIP,现在他们称之为GeoIP Lecacy , 来自maven.org或github的 免费数据库和可下载的Java库仍然可用。

GeoIP Lecacy可能会在将来死亡,但是,目前,因为GeoIP2不提供Java API来读取数据库信息(例如GEO-533LITE 20150303 Build 1版权所有(c)2015 MaxMind Inc保留所有权利 ),所以我仍然在我的网站上使用它。 我在我的IRC机器人中使用GeoIP2来受益于GeoIP2的多语言function。

每个国家/地区都有一些IP。

我不知道Java的实现,但你可以使用http://services.ce3c.be/ciprg/的输出,并创建自己的代码,根据IP地址给国家。