cgi做网站,如需郑州网站建设,手机app软件开发价格,张家口城乡建设局网站之前我们介绍过通过 qqwry.dat 根据IP获得所属城市和运营商信息。但是这个 qqwry.dat 已经太久没更新了#xff0c;数据有些不准确#xff0c;而且现在我们有个需求就是想获取某个IP所在的经纬度。这里我们可以使用 GeoLite2#xff0c;这个是国外开源的一个库#xff0c;需…之前我们介绍过通过 qqwry.dat 根据IP获得所属城市和运营商信息。但是这个 qqwry.dat 已经太久没更新了数据有些不准确而且现在我们有个需求就是想获取某个IP所在的经纬度。这里我们可以使用 GeoLite2这个是国外开源的一个库需要在其官网注册才能下载。下面介绍基本使用。一、注册账号GeoLite2 地址https://dev.maxmind.com/geoip/geoip2/geolite2/可以访问上面链接下面有一个注册按钮需要填写注册信息然后会收到一个邮件设置密码账号为邮箱。注册完成后点击登录。二、下载库文件下载页面地址https://www.maxmind.com/en/accounts/243575/geoip/downloads因为我需要获取城市信息所以选择第三个压缩包大概30MB解压后里面的 mmdb 有60MB三、Demo 实践官方文档地址https://dev.maxmind.com/geoip/geoip2/downloadable/Java的地址https://maxmind.github.io/GeoIP2-java/我这里就介绍Java的应用1、添加依赖com.maxmind.geoip2geoip22.13.1或者自行下载jar包2、Demoimport com.maxmind.geoip2.DatabaseReader;import com.maxmind.geoip2.model.CityResponse;import java.io.File;import java.io.IOException;import java.net.InetAddress;/*** author 言曌* date 2020/3/17 3:23 下午*/public class Demo {public static void main(String[] args) {// IP V4String ip 113.87.18.136;// IP V6 也是可以的DatabaseReader reader null;CityResponse response null;try {File database new File(/Users/liuyanzhao/code/sensboot/src/main/java/GeoLite2-City.mmdb);// 读取数据库内容reader new DatabaseReader.Builder(database).build();InetAddress ipAddress InetAddress.getByName(ip);// 获取查询结果response reader.city(ipAddress);System.out.println(response);} catch (Exception e) {e.printStackTrace();} finally {if (reader ! null) {try {reader.close();} catch (IOException e) {e.printStackTrace();}}}}}3.结果{city: {geoname_id: 1795565,names: {de: Shenzhen,ru: Шэньчжэнь,pt-BR: Shenzhen,ja: 深セン市,en: Shenzhen,fr: Shenzhen,zh-CN: 深圳市,es: Shenzhen}},continent: {code: AS,geoname_id: 6255147,names: {de: Asien,ru: Азия,pt-BR: Ásia,ja: アジア,en: Asia,fr: Asie,zh-CN: 亚洲,es: Asia}},country: {geoname_id: 1814991,is_in_european_union: false,iso_code: CN,names: {de: China,ru: Китай,pt-BR: China,ja: 中国,en: China,fr: Chine,zh-CN: 中国,es: China}},location: {accuracy_radius: 5,latitude: 22.5333,longitude: 114.1333,time_zone: Asia/Shanghai},maxmind: {},postal: {},registered_country: {geoname_id: 1814991,is_in_european_union: false,iso_code: CN,names: {de: China,ru: Китай,pt-BR: China,ja: 中国,en: China,fr: Chine,zh-CN: 中国,es: China}},represented_country: {is_in_european_union: false},subdivisions: [{geoname_id: 1809935,iso_code: GD,names: {en: Guangdong,fr: Province de Guangdong,zh-CN: 广东}}],traits: {ip_address: 113.87.18.136,is_anonymous: false,is_anonymous_proxy: false,is_anonymous_vpn: false,is_hosting_provider: false,is_legitimate_proxy: false,is_public_proxy: false,is_satellite_provider: false,is_tor_exit_node: false,network: 113.87.18.0/23}}城市获取没问题经纬度会有些偏差我们通常想让这个经纬度为这个城市的市中心这里实现不了。