Java 查询 MMDB 数据库
Lookup.java:
import java.io.File;
import java.net.InetAddress;
import com.fasterxml.jackson.databind.JsonNode;
import com.maxmind.db.Reader;
public class Lookup {
public static void main(String[] args) throws Exception {
File database = new File("resources/Country.mmdb");
Reader reader = new Reader(database);
// 查询
InetAddress address = InetAddress.getByName("114.114.114.114");
JsonNode response = reader.get(address);
System.out.println(response);
reader.close();
}
}
需要引入 Maxmind DB 和 Jackson Databind 包
pom.xml:
<project>
...
<dependencies>
...
<dependency>
<groupId>com.maxmind.db</groupId>
<artifactId>maxmind-db</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.16.1</version>
</dependency>
...
</dependencies>
...
</project>
运行结果样例:
{"country":{"is_in_european_union":false,"names":{"de":"China","ru":"Китай","pt-BR":"China","ja":"中国","en":"China","fr":"Chine","zh-CN":"中国","es":"China"},"iso_code":"CN","geoname_id":1814991}}
参考:
Java 查询 MMDB 数据库的更多相关文章
- java 查询oracle数据库所有表DatabaseMetaData的用法
DatabaseMetaData的用法(转) 一 . 得到这个对象的实例 Connection con ; con = DriverManager.getConnection(url,userName ...
- java.sql.SQLException: 无法转换为内部表示 -〉java 查询oracle数据库返回错误信息
java.sql.SQLException: 无法转换为内部表示 Query: SELECT * FROM nontheasttycoon Parameters: [] at org.apac ...
- Java查询MySQL数据库指定数据库中所有表名、字段名、字段类型、字段长度、字段描述
1,查询方法 public static List<Map<String, String>> getColumnInfoByTableName(String databaseN ...
- java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)
插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...
- Java对MySQL数据库进行连接、查询和修改(转)
Java对MySQL数据库进行连接.查询和修改 0. 一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection( ...
- Java查询数据库
创建数据库 创建 user 数据库 创建 teacher 数据库 teacher表的user_id列与user表的id列建立一对多连接,user_id作为外键. Java编程查询数据库 向user数据 ...
- Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- Java查询大文本
但JAVA本身缺少相应的类库,需要硬编码才能实现结构化文件计算,代码复杂且可读性差,难以实现高效的并行处理. 使用免费的集算器可以弥补这一不足.集算器封装了丰富的结构化文件读写和游标计算函数,书写简单 ...
- Java 操作MySql数据库
Java 项目开发中数据库操作是很重要的一个方面,对于初学者来说,MySql是比较容易熟悉的一种常见数据库,这篇文章记录了如何用Java来操作MySql数据库. 第一章 JDBC的概念 JDBC(Ja ...
随机推荐
- 攻防世界——Misc新手练习区解题总结<4>(11、12题)
第十一题ext3: 方法一:挂载 需要工具:kali虚拟机 下载附件后得到一个linux的系统光盘,我们用kali挂载一下 mount 123 /mnt//123为要挂载的文件名 寻找flag.txt ...
- 树莓派安装OpenCv
树莓派安装OpenCv 更换树莓派软件源 我们选择将树莓派的软件源切换到清华大学镜像站,据笔者亲测,通过此站可以顺利安装openCV. 切换软件源需要修改两个软件源配置文件的内容. 第一个需要修改是「 ...
- yb课堂 注册-登陆-个人模块 《三十九》
Cube-UI的form表单 https://didi.github.io/cube-ui/#/zh-CN/docs/form 注册 Register.vue <template> < ...
- 转载 | [AcSaveAsType -cad版本代号对应数字 ] & [AutoCAD的DWG文件格式版本代号列表]
1. AcSaveAsType -cad版本代号对应数字 doc.SaveAs("D:\AutoCAD\1.dwg", 61) # 将当前文件另存为PyAutoCAD_SaveA ...
- 8行JS代码实现Vue穿梭框
实现效果 完整 demo 参考 <template> <div class="contain"> <ul class=""> ...
- 从Mybatis-Plus开始认识SerializedLambda
从Mybatis-Plus开始认识SerializedLambda 背景 对于使用过Mybatis-Plus的Java开发者来说,肯定对以下代码不陌生: @TableName("t_user ...
- Day 1 - 二分
整数二分 我们可以做到每次排除一半的答案,时间复杂度 \(O(\log n)\). long long l = L, r = R; while(l <= r) { long long mid = ...
- 入门深度学习和TensorFlow
入门深度学习和TensorFlow时,首先要确保掌握必要的先导知识,然后逐步通过理论和实践相结合的方式深入学习.以下是一个具体的引导例子以及后续的学习计划. 入门深度学习和TensorFlow 1. ...
- 关于异步编程中的bind(this)
异步编程中的.bind(this)方法解决了异步执行后this指针指向全局函数的问题,主要可以通过以下两个场景加以说明:(本文所用例子基于React场景:为简便起见,仅在第一个例子中展示完整HTML代 ...
- laravel6学习
web 服务器需要拥有 storage 目录下的所有目录和 bootstrap/cache 目录的写权限