需要 GeoIP
IP地理位置使用
IP地理定位本质上是不精确的。位置通常靠近人口中心。GeoIP数据库提供的任何位置均不得用于识别特定地址或家庭。
使用Accuracy Radius作为我们为IP地址返回的纬度和经度坐标的地理位置精度的指示。IP地址的实际位置可能在此半径以及经纬度坐标定义的区域内。
下载链接
pom
<!-- 根据ip获取位置 -->
<dependency>
<groupId>com.maxmind.geoip2</groupId>
<artifactId>geoip2</artifactId>
<version>2.8.1</version>
</dependency>
测试和工具
package com.sh.util;
import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.aliyuncs.utils.StringUtils;
import com.maxmind.geoip2.DatabaseReader;
/**
*
* @description: 获取客户端IP地址
* @author: paulandcode
* @email: paulandcode@gmail.com
* @since: 2018年9月17日 下午3:44:51
*/
public class IPUtils {
private static Logger logger = LoggerFactory.getLogger(IPUtils.class