首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

透过IP地址获取用户所在地

2013-08-01 
通过IP地址获取用户所在地我们经常会看到某些网站在你打开之后会显示你当前所在的城市,那这个信息是怎么获

通过IP地址获取用户所在地
我们经常会看到某些网站在你打开之后会显示你当前所在的城市,那这个信息是怎么获取到的呢?因为项目中需要用到类似功能,就查阅了下,然后写了些测试代码。拿来和大家分享下。
首先在项目中需要添加库文件:GeoLiteCity,然后就可以利用这个文件得到城市和国家信息了。项目中如何获取到用户访问的IP地址就不用我说了吧,做过Web开发的人应该都知道。Request里面获取。Java代码:


public class GeoBusiness {
/**
 * @param args
 * @throws IOException
 */
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.out.println(getLocationByIp("220.181.111.147").getCity());
System.out.println(getLocationByIp("220.181.111.147").getCountryName());
}

public static Location getLocationByIp(String ipaddr) throws IOException {
String sep = System.getProperty("file.separator");
String dir = Play.configuration.getProperty("geoip.datdir");
String dbfile = dir + sep + "GeoLiteCity.dat";
LookupService cl = new LookupService(dbfile,
LookupService.GEOIP_MEMORY_CACHE);
Location location = cl.getLocation(ipaddr);

cl.close();
return location;
}
}


除了使用本地库,GEOIP还提供了Web Services。而且支持各种语言,如Perl,Ruby,Python,PHP, C#, VB.NET, VBScript等等。功能很是强大,具体也可以看我的一篇博文:http://blog.csdn.net/huxiweng/article/details/8945890
[解决办法]
试了下,不错!
[解决办法]
鼎一个~~~
[解决办法]
这个蛮好,下次试试看

热点排行