- 访问 https://dev.maxmind.com/geoip/geoip2/geolite2/ ,注册账号

- 注册成功之后进行数据库文件的下载

- 如果只是要根据ip判断国家名称的话,选择Country包就可以了,如果需要精确到城市或者有更精确的要求的话,选择城市包或者使用付费服务

- 解压后的IP库文件

- 根据官方提供的sample,码代码
- https://support.maxmind.com/getting-started-with-geolite2/
- https://github.com/maxmind/GeoIP2-java
package com.csp.common.component;
import java.io.InputStream;
import java.net.InetAddress;
import org.springframework.core.io.ClassPathResource;
import com.csp.common.utils.StringUtil;
import com.maxmind.geoip2.DatabaseReader;
import com.maxmind.geoip2.model.CountryResponse;
import com.maxmind.geoip2.record.Country;
public class IpUtil {
public String getCountryNameByIp(String ipAddress) {
String countryName = StringUtil.BLANK;
try {
File database = new File("/path/to/GeoLite2-Country.mmdb");
DatabaseReader reader = new DatabaseReader.Builder(database ).build();
InetAddress ip = InetAddress.getByName(ipAddress);
CountryResponse response = reader.country(ip);
Country country = response.getCountry();
countryName = country.getNames().get("ja");
} catch (Exception e) {
countryName = StringUtil.BLANK;
}
return countryName;
}
}