java - 在 geolite2 .mmdb 文件 (JAVA) 上按城市名称查询
问题描述
我正在使用 GeoLite2 通过 IP 地址获取我的 java 应用程序的位置。
我想从 GeoLite2-City.mmdb 文件中逐个城市获取国家/地区。
这是我的读者:
DatabaseReader reader = new DatabaseReader.Builder(dbFileStream).withCache(new CHMCache()).build();
我通过 IP 地址获取 CityResponse,如下所示:
CityResponse cityResponse = reader.city(InetAddress.getByName("an IP address"));
但我想像这样按城市获取国家/地区名称:
String countryName = reader.getCountryByCity("Paris”);
有没有办法做到这一点?
解决方案
这是不可能的。该数据库旨在通过 IP 地址进行查找。如果您需要以其他方式访问数据,我建议使用 MaxMind 提供的 CSV 文件。
此外,您可以尝试项目geonames.org及其java-api 库
推荐阅读
- abap - 在外向交货处理时捕获过帐发货事件
- ansible - Ansible 复制模块需要很长时间才能跨多台机器复制文件
- kotlin - Kotlin - 在迁移到 Kotlin 1.3 后,协程会导致 DefaultDispatcher 占用大量 CPU
- windows - Windows 2012 上的 Ansible 2.7 不接受 /norestart 选项
- mysql - MySql 服务器的 Azure 数据库的服务器管理员用户访问权限丢失
- reactjs - ReactJS:单击项目时的返回值(多步形式)
- javascript - 在 PHP 中使用分辨率的移动重定向
- java - 在自定义启动器中访问 spring 应用程序名称
- javascript - 使用AngularJS计算总量
- html - 在灵活高度的内容框上悬停设置宽度