在工作中遇到了解析IP地理位置的需求,接下来给大家提供一个简单实用的类库。
针对此博主也是用了很长时间才找到的。(后续博主也会自己写一个发布到maven仓库)
可以获取国家,省份,等等 支持 ipv4 ipv6 。简单实用,小白可用。
调用简单,以下为示例
IPInfo ipInfo1 = IPInfoUtils.getIpInfo("13.112.126.103");
IPInfo ipInfo2 = IPInfoUtils.getIpInfo("192.168.0.1");
IPInfo ipInfo3 = IPInfoUtils.getIpInfo("240E:0378:65FF:FFFF::");
IPInfo ipInfo4 = IPInfoUtils.getIpInfo("::1");
IPInfo ipInfo5 = IPInfoUtils.getIpInfo("2409:807e:2001:1107:0:0:0:4");
IPInfo ipInfo6 = IPInfoUtils.getIpInfo("2606:4700:50:0:0:0:adf5:3a5c");
IPInfo ipInfo7 = IPInfoUtils.getIpInfo("2400:3200:2000:49:0:0:0:1");
IPInfo ipInfo8 = IPInfoUtils.getIpInfo("2600:9000:5307:4100:0:0:0:1");
IPInfo ipInfo9 = IPInfoUtils.getIpInfo("2400:cb00:2049:1:0:0:adf5:3a05");
IPInfo ipInfo10 = IPInfoUtils.getIpInfo("2803:f800:50:0:0:0:6ca2:c04b");
1.导入maven依赖
<dependency>
<groupId>com.jthinking.common</groupId>
<artifactId>ip-info</artifactId>
<version>2.1.7</version>
</dependency>
2.编写接口代码。(我写了两个一个post请求,一个get请求。)
/**
* 获取ip的国家 get请求
* @param ip
* @return
*/
@GetMapping("/ipGetCountry")
public String ipGetCountry(@RequestParam String ip){
IPInfo ipInfo = IPInfoUtils.getIpInfo(ip);
return ipInfo.getCountry();
}
/**
* 获取ip的国家 post请求
* @param ip
* @return
*/
@PostMapping("/ipGetCountry")
public String ipPostCountry(String ip){
IPInfo ipInfo = IPInfoUtils.getIpInfo(ip);
return ipInfo.getCountry();
}
3.常用函数
// 获取IP信息
IPInfo ipInfo = IPInfoUtils.getIpInfo("222.128.176.102");
System.out.println(ipInfo.getCountry()); // 国家中文名称
System.out.println(ipInfo.getProvince()); // 中国省份中文名称
System.out.println(ipInfo.getAddress()); // 详细地址
System.out.println(ipInfo.getIsp()); // 互联网服务提供商
System.out.println(ipInfo.isOverseas()); // 是否是国外
System.out.println(ipInfo.getLat()); // 纬度
System.out.println(ipInfo.getLng()); // 经度