根据ip获取地址方法汇总
- 使用其他厂商提供的定位服务
- 使用本地数据库存储,在本地查找
- 使用公开的外部接口
一、使用其他厂商提供的定位服务
腾讯定位服务网站:
使用步骤大致如下:
-
申请key
-
导入包
-
使用包中提供的方法
优点:由其他厂商提供维护,ip定位的精确度、时效性可以得到保证
缺点:需要申请key,部分场景下会无法使用;部分厂商提供的服务有使用次数限制
二、使用本地数据库存储,在本地查找
ip2region:
使用步骤大致如下:
-
导入包
-
下载本地db文件
-
使用包中提供的方法
优点:本地查询速度快,不存在网络问题
缺点:本地db文件大,某些场景下不使用
三、使用公开的外部接口
太平洋网络ip地址查询:
使用步骤大致如下:
-
使用request获取ip地址
-
使用RestTemplate或WebClient等工具发送请求并携带ip地址
-
获取返回值
示例代码:
String getAddress(String ip) {
RestTemplate restTemplate = new RestTemplate();
// 发送GET请求
String url = "https://whois.pconline.com.cn/ip.jsp?ip=";
if (StringUtils.isNotEmpty(ip)) {
url = url + ip;
}
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, null, String.class);
return response.getBody();
}
优点:无须导入外部包、下载外部文件等,轻量使用
缺点:接口安全性与可靠性无法得到保证