IP-query(IP地址查询系统)
IP-query
开源于 GitHub 。
[TOC]
概述
IP地址查询系统
一个IP地址段的数据库(文本文件),用户可以在交互环境中,输入ip地址,系统给出地址对应的国家,身份,城市,ISP等信息。
快速开始
编译
cmake .
make
使用
cp ./src/ip.db ./bin
./bin/ipquery
下面是一个演示:
Welcome to IP-query!
Please input the IP address: 123.2.23.? 34.4.6.7-34.4.6.10 1.1.1.2 3.4.*.1
[1] 123.2.23.0 澳大利亚 0 0 0 | query time = 0.000 ms
[2] 123.2.23.1 澳大利亚 0 0 0 | query time = 0.000 ms
[3] 123.2.23.2 澳大利亚 0 0 0 | query time = 0.000 ms
[4] 123.2.23.3 澳大利亚 0 0 0 | query time = 0.000 ms
[5] 123.2.23.4 澳大利亚 0 0 0 | query time = 0.000 ms
[6] 123.2.23.5 澳大利亚 0 0 0 | query time = 0.000 ms
[7] 123.2.23.6 澳大利亚 0 0 0 | query time = 0.000 ms
[8] 123.2.23.7 澳大利亚 0 0 0 | query time = 0.000 ms
[9] 123.2.23.8 澳大利亚 0 0 0 | query time = 0.000 ms
[10] 123.2.23.9 澳大利亚 0 0 0 | query time = 0.000 ms
[11] 34.4.6.7 美国 德克萨斯 休斯顿 0 | query time = 0.000 ms
[12] 34.4.6.8 美国 德克萨斯 休斯顿 0 | query time = 0.000 ms
[13] 34.4.6.9 美国 德克萨斯 休斯顿 0 | query time = 0.000 ms
[14] 34.4.6.10 美国 德克萨斯 休斯顿 0 | query time = 0.000 ms
[15] 1.1.1.2 澳大利亚 0 0 0 | query time = 0.000 ms
[16] 3.4.0.1 美国 华盛顿 0 亚马逊 | query time = 0.000 ms
[17] 3.4.1.1 美国 华盛顿 0 亚马逊 | query time = 0.000 ms
--MORE--
# 键入'q',退出 more
Please input the IP address: q
# 程序退出
- 支持查询形式a.b.c.d或a1.b1.c1.d1-a2.b2.c2.d2,支持一次性多组数据(以空格或Tab的形式分割)
- 支持通配符(
?
、*
) - 当输出超过终端高度后分页输出,按键入“j”下一行,键入“f”或空格翻页,键入“d”翻半页,键入“q”退出
- 主程序键入“q”退出
Todo List
- [x] 支持查询形式为 a.b.c.d
- [x] 支持查询形式为 a1.b1.c1.d1-a2.b2.c2.d2
- [x] 支持查询形式为一次性多组数据
- [x] 输入非法时,能提示用户
- [x] 支持显示指定的信息,比如只显示国家,省份之类的
- [x] 支持文件操作(从文件输入)
- [x] 支持通配符(
?
、*
) - [x] 支持命令行
- [x] 更快的查询速度
- [x] 适配 Linux
- [x] 过长输出分页显示
- [ ] 小内存情况下查询处理
- [ ] 支持显示排序,比如按省份排序之类的
- [ ] 支持文件操作(输出到文件)
Change Log
1.1.6 (2020-02-10)
- 修复 Linux 适配
1.1.5 (2020-02-10)
- 分页显示可以匹配当前终端高度
- 优化内存占用
1.1.4 (2020-02-10)
- 可以同时输入多种查询形式
- 修复通配符错误
1.1.3 (2020-02-10)
- 修复输入非法提示的错误
1.1.2 (2020-02-09)
- 优化分页显示
1.1.1 (2020-02-09)
- 数据库编码更改为
utf-8
1.1.0 (2020-02-09)
- 过长输出分页显示
1.0.0 (2020-02-08)
- 适配 Linux(Ubuntu 18.04.2 LTS 64位)
0.9.0 (2020-02-07)
- 加快查询速度(加快至少 1000 倍)
- 优化内存占用
0.8.2 (2020-02-04)
- 优化查询时的内存占用
0.8.1 (2020-02-03)
- 优化查询速度(加快10倍)
- 优化内存占用
0.8.0 (2020-02-03)
- 支持命令行
0.7.0 (2020-02-02)
- 支持通配符(
?
、*
) - 修复无法输出 x.x.x.0-x.x.x.255 的错误
0.6.1 (2020-02-01)
- 在 ANSI 兼容的终端有彩色显示
- 优化内存占用
0.6.0 (2020-01-31)
- 支持文件方式输入想查询的ip地址列表,输入
f
后接文件地址 - 优化内存占用
0.5.0 (2020-01-29)
- 实现支持显示指定的信息,比如只显示国家或者省份之类的
- 增加 ip-query.ini 配置文件
0.4.2 (2020-01-27)
- 修复输入非法提示的错误
0.4.1 (2020-01-27)
- 实现多次查询,输入
q
退出
0.4.0 (2020-01-27)
- 实现输入非法提示
0.3.0 (2020-01-26)
- 实现一次性多组数据的单次查询
0.2.0 (2020-01-26)
- 实现 a1.b1.c1.d1-a2.b2.c2.d2 形式的单次查询
0.1.1 (2020-01-25)
- 实现对 迭代器(iterator) 的支持
0.1.0 (2020-01-11)
- 实现 a.b.c.d 形式的单次查询
感谢与第三方库
- Aother: Nicolas Devillard @ ndevilla,Emmanuel Leblond @TouilleMan
- License: MIT
2.rbtree
- Aother: (C) 1999 Andrea Arcangeli <andrea@suse.de>, (C) 2002 David Woodhouse <dwmw2@infradead.org>
- License: GPL
3.map
- Aother: [Broadroad](https://github.com/Broadroad), Andrea Arcangeli <andrea@suse.de>
- License: GPL (grab from kernel)
- Aother: [ASC_8384](http://www.asc8384.top/)
- License: CC0
开发环境
- Windows 10 专业版 64位:GCC 8.1.0, cmake 3.16.3,GNU Make 4.2.1 (Built for x86_64-w64-mingw32)
- Ubuntu 18.04.2 LTS 64位:GCC 7.4.0,cmake 3.10.2,GNU Make 4.1 (Built for x86_64-pc-linux-gnu)
License
对 ./src
目录下的所有代码采取 CC0
协议,即放弃版权。
文章目录
- IP-query
- 概述
- 快速开始
- Todo List
- Change Log
- 1.1.6 (2020-02-10)
- 1.1.5 (2020-02-10)
- 1.1.4 (2020-02-10)
- 1.1.3 (2020-02-10)
- 1.1.2 (2020-02-09)
- 1.1.1 (2020-02-09)
- 1.1.0 (2020-02-09)
- 1.0.0 (2020-02-08)
- 0.9.0 (2020-02-07)
- 0.8.2 (2020-02-04)
- 0.8.1 (2020-02-03)
- 0.8.0 (2020-02-03)
- 0.7.0 (2020-02-02)
- 0.6.1 (2020-02-01)
- 0.6.0 (2020-01-31)
- 0.5.0 (2020-01-29)
- 0.4.2 (2020-01-27)
- 0.4.1 (2020-01-27)
- 0.4.0 (2020-01-27)
- 0.3.0 (2020-01-26)
- 0.2.0 (2020-01-26)
- 0.1.1 (2020-01-25)
- 0.1.0 (2020-01-11)
- 感谢与第三方库
孙巨巨太强了