下载数据文件
https://dev.maxmind.com/geoip/geoip2/downloadable/#MaxMind_APIs
添加maven依赖
com.maxmind.geoip2
geoip2
2.10.0
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);
}
}