IPIP.NET地址库文件格式分析

  1. ipip库是什么?
  • ipip是一个ip地址库, 官网号称全球唯一一个基于各电信运营商,以及网络服务的BGP/ASN数据而分析处理而得来的IP库

ipip库有哪些特性

  • 地理数据标注准确: 国内的地址标注准确度高
  • 更新实时: 数据24小时实时更新
  • 提供CDN/DNS/VPN专版, 专为CDN、DNS、VPN用户设计(提供ACL格式)

ipip库提供文件格式

  • DAT[X]格式数据
  • TXT[X]格式数据
  • ACL格式数据(CDN专版)

TXTX格式数据分析

  1. TXT的文本格式简单清晰, 每行代表一个IP段, 总共有多少个IP段信息就有多少行
  2. 每行有15列信息, 每列均为该IP段代表的一个信息, 均已字符串格式表示, 列之间用\t(制表符)进行分割
  3. 每列分别表示如下信息:
  • 第1列&第2列:IP段所属的起始和终止IP(点分十进制)
  • 第3列:所属国家
  • 第4列:所属省份
  • 第5列:地级市/省直辖县级行政区
  • 第6列:IP段所有者
  • 第7列:所属运营商
  • 第8列:城市/省份/国家中心点维度
  • 第9列:城市/省份/国家中心点经度
  • 第10列:所在时区代表城市
  • 第11列:所在时区
  • 第12列:中国行政区划代码(ISO_3166-1)
  • 第13列:国际区号(ISO_3166-1)
  • 第14列:国家代码(ISO_3166-1)
  • 第15列:洲代码

DATX格式数据分析

  1. DATX格式都是16进制字节文件, 乍一眼看上去毫无头绪, 如下所示
  2. DATX分别有几个信息字段组成
------------------------------------------------|indexLen | flag      |index   | hole   | info |------------------------------------------------| 4       | 4*256*256  | ips*9  | 262144 | *  |------------------------------------------------
  • flag区域是一个索引区域, 由IP的前两个字段组成的索引映射表(256*256大小的uint32数组),Key(下标)表示以该下标作为IP段起始IP前两个字段的IP段, 值(数组值)表示该下标起始的IP段集合的起始位置。

    • 比如: 1.2.3.4/24就存储在下标(1*256 + 2 = 258)arr[258]=?的数组中进行映射, ?表示的是该段在IP段索引字段(index)中出现的序号。
  • index区域是一个数组, 每个数组元素表示一个IP段的摘要信息, 摘要信息包含如下几个信息
    • 每个摘要信息总共有9个字节组成, 分别表示如下三个信息
    • IP段结束IP(4bytes), 表示该IP段的结束IP
    • IP段的详细信息的相对偏移地址(3bytes),从index区域结束的地方开始计算偏移,比如第一个IP段的信息就是 262144+0 = 262144
    • IP段信息的详细信息长度(2bytes), 确定了ip信息的起始位置和长度,就可以明确该IP段的所有信息
  • hole区域是一个空洞区域, 该区域大小为256*256=262144, 不清楚具体是干什么的, 有了解的大神可以留言提供解答么?
  • info区域是一个string数组, 数组中每个信息,存储了该IP段的所有坐标信息(TXT格式从第三列开始的信息), 每个信息段都已\t(制表符)进行分割
  • indexLen区域, 讲完了其他区域再来讲第一个区域更好理解, indexLen表示了从flag区域开始, 到hole区域结束的字节长度, 统一表示为索引部分的总长度。
  • 需要注意的地方
    • indexLen部分为大端字节序写入
    • flag部分的数组使用小端字节序
    • index部分
      • 结束IP使用大端字节序
      • IP段的偏移地址使用小端字节序
      • IP段的信息长度使用大端字节序
    • info部分全部使用大端字节序

IPIP.Net地址库格式分析相关推荐

  1. 纯真IP地址库转UTFWry格式的方法

    纯真IP地址库的默认的文件是QQwry.dat,一些网站需要UTF格式的,直接用自带的是不行的,读取是乱码,虽然可以从程序上进行设置解析,如果程序后期使用的话还是较为麻烦一些,不如直接转换来的合适. ...

  2. 【Android RTMP】RTMP 数据格式 ( FLV 视频格式分析 | 文件头 Header 分析 | 标签 Tag 分析 | 视频标签 Tag 数据分析 )

    文章目录 安卓直播推流专栏博客总结 一. RTMP 格式解析 二. 文件头 Header 分析 三. 标签 Tag 分析 四. 视频标签 Tag 数据分析 安卓直播推流专栏博客总结 Android R ...

  3. AAC音频格式分析与解码

    原文地址为: AAC音频格式分析与解码 一直在做一个语音项目,到了测试阶段,近来不是很忙,想把之前做的内容整理一下. 关于AAC音频格式基本情况,可参考维基百科http://en.wikipedia. ...

  4. <整理总结>H264/265码流数据包格式分析(带mp4v2封装H264/265为MP4的源码示例)

    H264/265码流数据包格式分析 前言: 一.H.264码流解析 I帧P帧B帧说明: 二.H.265码流解析 三.主要源码 前言: 最近在学习使用MP4v2将H264/H265码流以及AAC音频封装 ...

  5. linux 可执行文件格式分析

    UNIX/LINUX 平台下三种主要的可执行文件格式:a.out(assembler and link editor output 汇编器和链接编辑器的输出).COFF(Common Object F ...

  6. UNIX/LINUX 平台可执行文件格式分析

    UNIX/LINUX 平台下三种主要的可执行文件格式:a.out(assembler and link editor output 汇编器和链接编辑器的输出).COFF(Common Object F ...

  7. 【Android 安装包优化】资源混淆 ( resources.arsc 资源映射表混淆 | resources.arsc 资源映射表二进制格式分析 | 混淆全局字符串池和资源名称字符串池 )

    文章目录 一.resources.arsc 资源映射表 混淆 二.resources.arsc 资源映射表二进制格式分析 三.参考资料 资源混淆时 , 需要修改混淆 resources.arsc 资源 ...

  8. MMDB ip地址库操作

    MMDB ip地址库操作 @(JAVA)[java] MMDB即Maxmind DB,是一个设计用于存储IPv4和IPv6的数据信息的数据库,mmdb文件是一个二进制格式的文件,它使用一个二分查找树加 ...

  9. spring boot 整合 ip2region(ip地址库)

    Ip2region是什么? ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java,php,c,python,nod ...

  10. IP地址库介绍 (转)

    IP地址库介绍 摘要 在CDN系统中,IP地址库在流量调度.网络服务质量监测等方面起到重要的作用,本文主要介绍了IP地址库的功能.内容以及IP地址库的生成和评价方法 什么是IP地址库? 所谓IP地址库 ...

最新文章

  1. 一台主机装两个mysql数据库_一台主机装两个mysql数据库
  2. 杭州往事之与L项目SME Cathy小聚
  3. java ui调试_如何使用 IBM i System Debugger 调试 Java 程序
  4. awk 分隔符 多个空格_如何在awk中指定多个分隔符
  5. Python 数值计算库之-[Pandas](六)
  6. NAS——在VMware 15虚拟机中安装黑群晖DSM解决方案
  7. Linux命令工作中常用的总结
  8. github 公钥 私钥_github快速使用
  9. Jmeter压力测试快速使用
  10. java开辟_仿照百度文库_FlexPaper
  11. 计算机操作系统|汤小丹|第四版|习题答案(六)
  12. 如何用python编写问卷调查_通过Python实现自动填写调查问卷
  13. python 用余弦值反算出角度
  14. LOJ10102旅游航道
  15. php 判断百度蜘蛛抓取,百度蜘蛛抓取不存在目录 对应的解决方法
  16. 搜狗站长html标签验证,悦然建站分享:搜狗站长平台使用教程之添加网站
  17. pngimg 可以商用吗_推荐几个个人收藏的外国高清、免费、无版权可商用的网站...
  18. 明明都保意外,定期寿险和意外险到底区别在哪里?
  19. 2.SPSS入门基础——数据录入数据管理编程规则图表可视化
  20. 2021年中国宽带网速发展状况分析:我国宽带网速增长快速[图]

热门文章

  1. Java中什么是句柄
  2. BeanUtils与PropertyUtils的copyProperties方法的差别
  3. python自定义函数拟合_python自定义函数拟合
  4. 优化设计二维鲍威尔c语言,潘隆武-B0310524-机制09-5-鲍威尔法.doc
  5. 如何恢复快捷方式上的小箭头
  6. HTML+CSS+JS实现十款好看的登录注册界面模板,赶紧收藏起来吧!
  7. 2022年Python最新面试题汇总及答案
  8. ​越狱iOS必备神器Flex使用指南-屏蔽越狱检测的破解利器
  9. python 结巴分词学习
  10. 电商数据应用体系建设总结(二)—— 数据应用层架构介绍和规范总结