Skip to content

Commit

Permalink
Merge pull request #1 from lionsoul2014/master
Browse files Browse the repository at this point in the history
合并远程
  • Loading branch information
mohong122 authored May 25, 2017
2 parents 20cd77c + 939dc51 commit 9232c8f
Show file tree
Hide file tree
Showing 17 changed files with 28,315 additions and 15,550 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
META-INF/
# Binary Files #
*.jar
!dbMaker-*.jar
# Package Files #
.settings/
.classpath
Expand Down
31 changes: 31 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
### 1.2.4
1, 花了近两周的时间重写了数据的升级算法,再次提高准确率,升级过程如下(此处应该有掌声):

```shell
1. ip预分段,利于分布式同步升级
2. 分段同步升级,目前使用四个机器同时升级
3,自动验证数据查缺补全
4,数据合并
5,数据格式标准化,目前2个工作:
1),ipip.net的数据和淘宝数据保持区域名称统一,ipip.net的数据不带“省”和“市”关键字。
2),香港澳门台湾等国家信息修复(淘宝原始数据有问题),reported at http://git.oschina.net/lionsoul/ip2region/issues/21
6,重复ip段的合并得到data目录下的ip.merge.txt
7,生产data目录下的ip2region.db二进制数据库文件
```

2,修复原始数据关于“香港,台湾,澳门”国家信息错误的bug,reported at http://git.oschina.net/lionsoul/ip2region/issues/21
3,将数据升级至:2017/03/15同步版本
4,增加c_mmap查询客户端,C客户端查询文件读取使用内存映射加速,感谢[Leo Ma](http://git.oschina.net/begeekmyfriend)的贡献

备注:部分阿里云数据有问题,缺失的部分使用免费开放的ipip.net的数据代替了。

### 1.2.3
1. 优化升级算法,进行更深度的分裂,可以使准确率再度提高(同时数据的更新也花费了2天多的时间)。
2. 数据升级至2016/12/14版本的数据(包括原始数据和binary数据库的数据)。

### 1.2.2

1. ip数据文件更新至2016/11/02版本
2. 增加ip2region.db数据库文件的java生成工具,请参考README获取使用方式
3. 新增golang查询客户端的实现,感谢 [@mohong122](https://github.com/mohong122) 的关注和贡献

### 1.2

1. 新增分列式升级算法,大大的增加了数据的准确率,基本避免之前各大网友反馈的些许ip定位错误!
Expand Down
5 changes: 2 additions & 3 deletions LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,9 +201,9 @@
limitations under the License.

==========================================================================
The following license applies to the JQuery JavaScript library
The following license applies to the ip2region library
--------------------------------------------------------------------------
Copyright (c) 2010 John Resig, http://jquery.com/
Copyright (c) 2015 Lionsoul<chenxin619315@gmail.com>

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
Expand All @@ -223,4 +223,3 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

28 changes: 27 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ip2region - 最自由的ip地址查询库,ip到地区的映射库,提供Bina

**4. 多查询客户端的支持,0.0x毫秒级别的查询**

已经集成的客户端有:java, php, c, python,nodejs,php扩展(支持linux, php5, php7版本已支持)。
已经集成的客户端有:java, php, c, python,nodejs,php扩展(支持linux, php5, php7版本已支持),golang

提供了两种查询算法,响应时间如下:
客户端/binary算法/b-tree算法/Memory算法:
Expand Down Expand Up @@ -64,3 +64,29 @@ python:
输入ip地址开始测试,第一次会稍微有点慢,在运行命令后面接入binary,memory来尝试其他算法,建议使用b-tree算法,速度和并发需求的可以使用memory算法。

具体集成请参考不同客户端的测试源码。

**6. 如何生成ip2region.db文件**

从ip2region 1.2.2版本开始里面提交了一个dbMaker-{version}.jar的可以执行jar文件,用它来完成这个工作:
* 1, 确保你安装好了java环境(不玩Java的童鞋就自己谷歌找找拉,临时用一用,几分钟的事情)
* 2, cd到ip2region的根目录,然后运行如下命令:

```shell
java -jar dbMaker-{version}.jar -src 文本数据文件 -region 地域csv文件 [-dst 生成的ip2region.db文件的目录]

# 文本数据文件:db文件的原始文本数据文件路径,自带的ip2region.db文件就是/data/ip.merge.txt生成而来的,你可以换成自己的或者更改/data/ip.merge.txt重新生成
# 地域csv文件:该文件目的是方便配置ip2region进行数据关系的存储,得到的数据包含一个city_id,这个直接使用/data/origin/global_region.csv文件即可
# ip2region.db文件的目录:是可选参数,没有指定的话会在当前目录生成一份./data/ip2region.db文件
```

* 3, 获取生成的ip2region.db文件覆盖原来的ip2region.db文件即可
* 4, 默认的ip2region.db文件生成命令:

```shell
cd ip2region项目根目录
java -jar dbMaker-1.2.2.jar -src ./data/ip.merge.txt -region ./data/global_region.csv

# 会看到一大片的输出
```

* 5, 数据库文件的结构和原理请阅读 @冬芽 的blog:[“ip2region数据库文件的结构和原理”](http://dongyado.com/tools/2016/08/18/structure-of-ip2region-database-file/)
Loading

0 comments on commit 9232c8f

Please sign in to comment.