# IP-query **Repository Path**: ASC_8384/IP-query ## Basic Information - **Project Name**: IP-query - **Description**: No description available - **Primary Language**: Unknown - **License**: CC0-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-07 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IP-query ## 概述 **IP地址查询系统** 一个IP地址段的数据库(文本文件),用户可以在交互环境中,输入ip地址,系统给出地址对应的国家,身份,城市,ISP等信息。 ## 快速开始 ### 编译 ``` BASH cmake . make ``` ### 使用 ``` BASH cp ./src/ip.db ./bin ./bin/ipquery ``` 下面是一个演示: ``` BASH 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 # 程序退出 ``` 1. 支持查询形式a.b.c.d或a1.b1.c1.d1-a2.b2.c2.d2,支持一次性多组数据(以空格或Tab的形式分割) 2. 支持通配符( `?` 、 `*` ) 3. 当输出超过终端高度后分页输出,按键入“j”下一行,键入“f”或空格翻页,键入“d”翻半页,键入“q”退出 4. 主程序键入“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 形式的单次查询 ## 感谢与第三方库 1.[iniparser](https://github.com/ndevilla/iniparser) - Aother: Nicolas Devillard @ ndevilla,Emmanuel Leblond @TouilleMan - License: MIT 2.rbtree - Aother: (C) 1999 Andrea Arcangeli , (C) 2002 David Woodhouse - License: GPL 3.[map](https://github.com/Broadroad/map) - Aother: [Broadroad](https://github.com/Broadroad), Andrea Arcangeli - License: GPL (grab from kernel) 4.[ip-db-maker](https://github.com/ASC8384/ip-db-maker) - Aother: [ASC_8384](http://www.asc8384.top/) - License: CC0 ### License 对 `./src` 目录下的所有代码采取 `CC0` 协议,即放弃版权。