我的应用程序知道用户的 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
Run Code Online (Sandbox Code Playgroud)
这是我使用的 junit 测试用例的链接GeoLiteCityTest.java
MaxMind 提供 java 类,但不提供 jars。因此,我创建了一个可以构建代码并生成 jar 的 Maven 项目。这是 GitHub 项目https://github.com/snambi/GeoIP
如果你需要在你的maven项目中使用这个库,添加如下依赖
<dependency>
<groupId>org.geomind</groupId>
<artifactId>geoip</artifactId>
<version>1.2.8</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在 pom.xml 中的“repositories”下添加以下存储库配置
<repository>
<id>geoip</id>
<url>http://snambi.github.com/maven/</url>
</repository>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13240 次 |
| 最近记录: |