geoip java api_利用GeoIP数据库及API进行地理定位查询 Java

[数据库的基本导入\导出的命令 是 mysqldump 和 source 在linux下直接用命令行操作就可以 在windows下 一般情况下有两种方法一个也是用命令行 另一个是用phpmyadmin先来说

地理定位查询的的数据库比较多,而且大多都开放一些free的版本

国内的有纯真数据库等,但是他只提供文本的地理位置信息,不提供经纬度数据

当应用到google map时,就不可以了

国外的有MaxMind的GeoIP数据库、IP2Location数据库等,它们提供经纬度数据

在此简单介绍下,MaxMind的GeoIP,此数据库用于国家的查询

首先,在MaxMind官网下载所需资源

GeoIP数据库下载地址:http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

下载后,我们将其解压到e盘

MaxMind提供多种api接口,如:perl, java, python, c, php, c#等

在此我们使用java API

下载地址:http://www.maxmind.com/download/geoip/api/java/

将其导入eclipse等开发环境中即可

也可以将其解压到任意目录,手动编译(

cd source/com/maxmind/geoip/

javac *.java

cd -

javac *.java

)[首先要下载Connector/J地址:http://www.mysql.com/downloads/connector/j/ 这是MySQL官方提供的连接方式: 解压后得到jar库文件,需要在工程中导入该库文件 我是用的

在此api中含有例子程序 CountryLookupTest.java

在编译前需要确定,操作系统环境,进行更改

// Uncomment for windows

System.setProperty("user.dir",   "E:\\");

String dir = System.getProperty("user.dir");

// Uncomment for Linux

//String dir = "/usr/local/share/GeoIP";

如上,windows中我放在e盘目录下(位置随意),在其中必须加上 System.setProperty("user.dir",   "E:\\");

以设的程序搜索路径,不加的话,就是system32下,好像

设置完后即可执行

java CountryLookupTest

查看结果,此数据库只能查到国家

如果,想精确查到城市的话,可以用MaxMind网站的

http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz数据库

附例子执行结果:

IT

Italy

United States

United States

Colombia

China[由于Java的String类型使用的是unicode编码,而微软的Access数据库使用的是gbk编码。使用String类型的变量存储Access中的文本字段中文会发生乱码现象。使用byte[]类型可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值