Erlang Ip

最近在找一个离线IP数据库,发现IPIP.NET上的数据比较符合需求,可惜没Erlang语言版本,因此写一个Erlang Lib。参考了其他语言库,实现了IP数据读取功能,由于直接操作Binary操作,所以效率不会很高,如果要应用到高频查询,最好加一层缓存。
代码是针对IPIP.NET (http://www.ipip.net/download.html)上的免费数据库,数据格式大致如下:

| 4 bytes 数据长度 DataLen(big endian) |
| 256 * 4 ip首位对应的数据偏移 |
| DataLen – 4 – 256*4 以8bytes的数据(4 bytes Ip, 3 bypes offSet, 1 byte data len) |
| Address data 地址信息 |

解释代码的基本思路是:先通过首位地址,找到IP段所在的数据范围,再在范围中找到目标IP的地址偏移。

Github https://github.com/kqqsysu/erlang-ip

Erlang技术分享内容均为原创,转载请标明本文地址
本文链接:http://www.kongqingquan.com/archives/515

此条目发表在Erlang分类目录。将固定链接加入收藏夹。

Erlang Ip》有 1 条评论

  1. zengda说:

    不错,不错,看看了!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">