从ipaddress获取地理代码的Java库

从ipaddress获取地理代码的Java库,java,geocoding,Java,Geocoding,我的应用程序知道用户的IP地址。 我们需要识别用户所在的城市、州、国家以及用户所在的纬度和经度 有没有java库可以做到这一点 如果没有,用于将IP地址转换为地理位置的算法或数据源是什么 它们提供了一个JavaAPI(除其他外)。我用Scala编写了一个简单的库,用于获取地理位置。只要在类路径中包含scala-library.jar,也可以从Java使用它。您需要来自IPInfoDB的API密钥。您可以获得JSON、raw或XML格式的输出 代码和其他一些文档在我的上,还有一个可供下载的 下面是

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

有没有java库可以做到这一点

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


它们提供了一个JavaAPI(除其他外)。

我用Scala编写了一个简单的库,用于获取地理位置。只要在类路径中包含scala-library.jar,也可以从Java使用它。您需要来自IPInfoDB的API密钥。您可以获得JSON、raw或XML格式的输出

代码和其他一些文档在我的上,还有一个可供下载的

下面是一个Java代码片段,它将获得具有“城市”分辨率的地理信息:

GeoIP geoip = new GeoIP("<API Key>");
//Note the $.MODULE$ syntax to refer to the case class in Scala.
System.out.println(geoip.getGeoRaw("<IP Address>", City$.MODULE$));
GeoIP GeoIP=new GeoIP(“

提供了一个本地数据库和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测试用例的链接

MaxMind提供java类,但不提供JAR。因此,我创建了一个maven项目,可以构建代码并生成JAR

如果需要在maven项目中使用此库,请添加以下依赖项

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

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

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

geoip
http://snambi.github.com/maven/

(不过,这只会让你达到城市水平。)哇,请投赞成票,我该如何将其添加到书签中,以便我回家后可以看到它?我一直在开发一个网络安全软件包,这将是非常棒的with@mnuss谢谢你的链接。知道他们是如何将ip地址解码到位置的吗?我做了一些测试,这是一个很好的库。我会将结果作为答案发布。IPInfoDB纯粹是一个web API。如果可以在应用程序中完成,那就太好了。前面的答案提供了一个很好的数据库。我将以单独的答案发布详细信息。感谢提供另一个stackoverflow线程。它有很好的信息。将所有内容整合到一个地方会很好。