下载数据文件
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); } }
时间: 2024-11-02 11:47:55