从 ip 地址获取地理编码的 Java 库

标签 java geocoding

我的应用程序知道用户的 IP 地址。 我们需要识别用户的城市、州、国家和用户的经纬度。

是否有可以执行此操作的 java 库?

如果没有,将IP地址转换为地理位置的算法或数据源是什么?

最佳答案

http://www.maxmind.com/app/developers提供本地数据库和java类来计算IP地址的位置信息。我做了一些测试。结果似乎不错。

bbc.co.uk: 212.58.241.131 : 51.283295,-0.23330688;Tadworth,N7,United Kingdom,null
home: 76.126.242.196 : 37.369705,-122.0214;Sunnyvale,CA,United States,94086
google.com: 74.125.224.133 : 37.419205,-122.0574;Mountain View,CA,United States,94043
tcs.in: 202.71.129.225 : 28.666702,77.216705;Delhi,07,India,null
ebay.com: 66.135.205.13 : 37.280304,-121.956696;Campbell,CA,United States,95008
etrade.com: 12.153.224.22 : 34.091797,-84.2209;Alpharetta,GA,United States,30005
whitehouse.gov: 72.247.136.110 : 42.362595,-71.0843;Cambridge,MA,United States,02142

这是我使用的 junit 测试用例的链接,GeoLiteCityTest.java

MaxMind 提供 java 类,但不提供 jars。因此,我创建了一个可以构建代码并生成 jars 的 maven 项目。这是 GitHub 项目 https://github.com/snambi/GeoIP

如果你的maven项目中需要使用这个库,添加如下依赖

<dependency>
   <groupId>org.geomind</groupId>
   <artifactId>geoip</artifactId>
   <version>1.2.8</version>
</dependency>

在 pom.xml 中的“repositories”下添加以下存储库配置

<repository>
   <id>geoip</id>
   <url>http://snambi.github.com/maven/</url>
</repository>

关于从 ip 地址获取地理编码的 Java 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11298462/

相关文章:

google-maps - Google Places API - 如何获取一个国家的地区?

java - 与java应用程序的接口(interface)DLL,如何?

java - 当文件位于 Maven 项目的资源文件夹中时,使用 selenium WebDriver 打开文件

java - 如何在给定的经纬度中添加 x km 距离

php - 为什么 file_get_contents 不起作用?

geolocation - 查找纬度/经度的县名称

google-maps - 在本地计算行驶距离,无需 Google Maps API

java - JxBrowser 还要多久才能发布最新版本的 Chromium(版本 77)?

java - Netbeans IDE 中企业应用程序项目和 Web 项目应用程序之间的区别

android - 地理编码器返回地址