根据ip获取国家
<!-- https://mvnrepository.com/artifact/com.maxmind.geoip/geoip-api --> <dependency> <groupId>com.maxmind.geoip</groupId> <artifactId>geoip-api</artifactId> <version>1.3.0</version> </dependency>
Country_GeoIP.dat在博客文件管理列表中
package com.onloon.website.analytics.common.utils; import java.io.IOException; import java.net.InetAddress; import com.maxmind.geoip.Location; import org.apache.commons.lang3.StringUtils; import org.springframework.core.io.ClassPathResource; import com.maxmind.geoip.Country; import com.maxmind.geoip.LookupService; import com.onloon.website.analytics.common.exception.BusinessException; public class GeoIpUtil { private static final String COUNTRY_DATA_PATH="/ipdb/Country_GeoIP.dat"; private static final String CITY_DATA_PATH="/ipdb/GeoLiteCity.dat"; private static LookupService lookupService; private static LookupService lookupCityService; /** * 查询指定ip的国家英文名称 * * @author pengfeng(彭锋) * @time 下午3:44:00 * @param ip * @return */ public static String getCountryEnName(String ip) { if(lookupService==null) { load(); } if(lookupService==null) { return null; } Country country=lookupService.getCountry(ip); if(country==null||StringUtils.isBlank(country.getName())) { return null; } return country.getName(); } /** * 根据IP获取位置信息 * @param ip * @return */ public static Location getLocatinInfo(String ip){ if(lookupCityService==null) { loadCity(); } if(lookupCityService==null) { return null; } return lookupCityService.getLocation(ip); } //加载数据文件 private static synchronized void load() { if(lookupService!=null) { return; } ClassPathResource resource = new ClassPathResource(COUNTRY_DATA_PATH); try { lookupService=new LookupService(resource.getFile()); } catch (IOException e) { throw new BusinessException(); } } //加载数据文件 private static synchronized void loadCity() { if(lookupCityService!=null) { return; } ClassPathResource resource = new ClassPathResource(CITY_DATA_PATH); try { lookupCityService=new LookupService(resource.getFile()); } catch (IOException e) { throw new BusinessException(); } } }