GeoLite(
http://dev.maxmind.com/geoip/legacy/geolite/)是一个简单的方法。因为它使用本地数据库,因此不需要Web服务调用,并且对于大量IP进行地理编码的速度要快得多。
这是怎么回事?
添加这个Maven工件:
com.maxmind.geoip
geoip-api
1.2.11
将文件解压到任何文件夹中。然后做:
LookupService cl = new LookupService("/var/geolite/GeoLiteCity.dat",
LookupService.GEOIP_MEMORY_CACHE | LookupService.GEOIP_CHECK_CACHE);
Location location = cl.getLocation("some ip address");
结果将位于纬度,经度,城市,区域和countryCode属性中的位置对象。