首页 > 其他 > 详细

通过网址或IP获取省份城市

时间:2017-12-10 12:05:28      阅读:275      评论:0      收藏:0      [点我收藏+]

 

下载数据文件

https://dev.maxmind.com/geoip/geoip2/downloadable/#MaxMind_APIs

  

添加maven依赖

        <dependency>
            <groupId>com.maxmind.geoip2</groupId>
            <artifactId>geoip2</artifactId>
            <version>2.10.0</version>
        </dependency>

  

 

java代码具体实现:

import com.fasterxml.jackson.databind.JsonNode;
import com.maxmind.db.Reader;
import com.maxmind.geoip2.DatabaseReader;
import com.maxmind.geoip2.exception.GeoIp2Exception;
import com.maxmind.geoip2.model.AnonymousIpResponse;
import com.maxmind.geoip2.model.CityResponse;
import com.maxmind.geoip2.record.City;
import com.maxmind.geoip2.record.Country;
import com.maxmind.geoip2.record.Location;
import com.maxmind.geoip2.record.Subdivision;
import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;

/**
 * Created by yiliang9117
 * 2017-12-10 09:40
 */
public class CTest {

    @Test
    public void cityTest() throws IOException, GeoIp2Exception {
        InputStream in = ClassLoader.getSystemResourceAsStream("GeoLite2-City.mmdb");//数据文件地址
        Reader r = new Reader(in);
        JsonNode node = r.get(InetAddress.getByName("tianya.cn"));
        //国家
        String country = node.get("country").get("names").get("zh-CN").textValue();
        System.out.println(country);
        //省份
        String area = node.get("subdivisions").get(0).get("names").get("zh-CN").textValue();
        //城市
        String city = node.get("city").get("names").get("zh-CN").textValue();
        System.out.println(country + "." + area + "." + city);
    }

}

  

通过网址或IP获取省份城市

原文:http://www.cnblogs.com/yiliang9117/p/8016352.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!