java - 如何在后端获取 HTTP 请求的用户所在国家/地区?

标签 java spring kotlin backend

我正在尝试获取用户向我的服务器发送请求的国家/地区。

到目前为止,我已经找到了这些解决方案:

https://github.com/fiorix/freegeoip

https://github.com/maxmind/GeoIP2-java

这些解决方案使用具有许可证的 MaxMind 数据库 GeoIP2 Country Database,对于这个特定项目,我对图书馆有限制(由于业务的法律方面)

我发现一些主题提到 Google API 可以提供此服务,但我对此并不感兴趣,因为我想要一个我可以自己托管并且使用 Java 或 Kotlin 实现的解决方案。

是否有人知道与提到的不同的解决方案(在后端运行)?

最佳答案

我编写了一个小服务,它根据我从 http://ipverse.net/ 获得的数据返回国家/地区。

它应该是免费的,但如果我错了,请纠正我。根据网站,数据由五个大 RIR 提供。

该网站在早上 5 点左右更新其数据。更新 IP block 的 Cron 作业安排在早上 6 点。我猜数据应该是准确的。

*编辑 我已经复制了算法并创建了一个 github 操作来保持更新,请查看:https://github.com/jaecktec/ncc-inetnum-parser

关于java - 如何在后端获取 HTTP 请求的用户所在国家/地区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46464092/

相关文章:

java - Spring MVC 不支持 POST 方法 - tacoCloud spring 的实际应用

java - Spring Boot 作业调度程序

spring - 更新对多关联

Java Set无法区分不同的对象

java - Payara (glassfish) 管理控制台卡在加载中

java - Pangram 在 Java 中使用哈希集

java - <![CDATA ["' "]]> 返回两个结果。某些应用程序版本打印 "' ",另一个应用程序版本打印 '.为什么?

java - 实例初始化 block 的编译顺序

java - 如何通过 Java/Kotlin API 从 KeyCloak 请求 JWT token

java - arrayListOf(),sortedWith,compareBy与Java等效