这里实现两种方式
- ip2region: 国内快速的IP检索器。
- GeoIP:国外产品,全球的IP地址库,免费的不完善,完善的要钱。
您可以在以下链接下载 ip2region.xdb
文件:
要使用此插件,请将以下依赖添加到您的 Maven 项目的 pom.xml
文件中:
<dependency>
<groupId>com.fc</groupId>
<artifactId>ip2region-spring-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
然后,在您的应用程序的 YAML 配置文件中指定 ip2region.xdb
文件的路径:
ip2region.xdb: /path/to/ip2region.xdb
如果您在 Kubernetes 中使用此插件,建议您将 ip2region.xdb
文件挂载为 NTFS 卷。
要使用该插件,您可以使用以下代码示例:
try (var ctx = SpringApplication.run(Main.class, args)) {
IP2RegionService ip2RegionService = ctx.getBean(IP2RegionService.class);
// 输出示例:LocationInfo{country='中国', region='0', province='广东省', city='深圳市', isp='电信'}
System.out.println(ip2RegionService.getIpLocation("183.15.156.42"));
}
您可以在以下链接下载 GeoIP 数据包,需要使用电子邮件登录:
下载页面: 下载页面
下载地址: 下载地址
要使用 GeoIP 插件,请将以下依赖添加到您的 Maven 项目的 pom.xml
文件中:
<dependency>
<groupId>com.fc</groupId>
<artifactId>geoip-spring-boot-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
然后,在您的应用程序的 YAML 配置文件中指定 GeoLite2-City.mmdb
文件的路径:
geoip2.mmdb: /path/to/GeoLite2-City.mmdb
要使用该插件,您可以使用以下代码示例:
try (var ctx = SpringApplication.run(Main.class, args)) {
GeoIP2Service geoIP2Service = ctx.getBean(GeoIP2Service.class);
// 输出示例:GeoIP2Info{country='中国', province='广东', city='深圳', latitude=22.5559, longitude=114.0577}
System.out.println(geoIP2Service.getLocationInfo("183.15.156.42"));
}
1. 第一步编译打包
mvn clean install
2. 进入到web项目
cd location-search-web
3. 到成镜像包, allen2fuc是自己的hub的镜像仓库
mvn k8s:build
4. 上传到dockerhub
mvn k8s:push
5. 生成k8s资源文件, 并且部署到k8s
mvn k8s:resource k8s:apply
http {{SERVER_IP}}/location "ip==183.15.156.42"
HTTP/1.1 200
Connection: keep-alive
Content-Type: application/json
Date: Thu, 18 Jan 2024 09:51:51 GMT
Transfer-Encoding: chunked
{
"code": 200,
"data": {
"city": "深圳市",
"country": "中国",
"isp": "电信",
"province": "广东省",
"region": "0"
},
"message": "success"
}
或者
curl -v "{{SERVER_IP}}/location?ip=183.15.156.42"