ZX IPv6数据库格式分析

本篇是ZX Inc的IPv6数据库中的数据存储格式分析,在多次修改和热心读者帮助下已经写出了整个结构。

ZX IPv6数据库下载地址:http://ip.zxinc.tk/

如果您想要使用本篇介绍的内容,请先参考页面上方或下方的许可协议!

以下是我以ZX 20110430版本数据库为例的分析结果:

0x0000 – 0x0003:ASCII “IPDB”(0x49 50 44 42),用来识别数据库类型。

0x0006:Byte 2(0x02),这是偏移地址长度。这个长度用于下方[1]处。

0x0007:Byte 8(0x08),这是IP地址长度。这个长度用于下方[2]处。

0x0008 – 0x000F:Int64 15725(0x6D 3D 00 00 00 00 00 00),这是数据库中的记录总条数。

0x0010 – 0x0017:HEX(0xF6 89 00 00 00 00 00 00),这是数据库地址段的开始位置。下面跳到这个地址(0x89F6)。

0x89F6 – 0x89FD [2]:IPv6(0x00 00 00 00 00 00 00 00),这是一个IPv6 /64段的记录起始地址,终止地址是下一条记录起始地址减1。

0x89FE – 0x89FF [1]:HEX(0xBB 88),这是本条记录对应的地理信息在数据库中的位置。下面跳到这个地址(0x88BB)。

0x88BB – 0x88BD:HEX(0x02 53 62),0x01和0x02开始的标志意味着跳转,后两个字节就是跳转地址。下面跳到这个地址(0x6253)。

0x6253 – 0x6263:UTF-8 String “IANA保留地址”(0x49 41 … 00),这是一个UTF8的字符串,以0x00结尾,也就是上述IP段对应的地理信息。每条IP记录对应两个地理信息的字符串(例如“山东省济南市 山东大学”),因此下面跳回到刚才的地址来获取第二段。

0x88BE:UTF-8 String(空,0x00)。如果开头不是0x01或0x02即为直接字符串,0x00结束说明为空串。之后跳回下一条IP记录(0x8A00)继续读取即可。一共读取15725次,其实只有15724条有效记录,最后一条记录(0xFF FF FF FF FF FF FF FF)对应的是数据库的版本信息,但是可以用来计算倒数第二条的结束地址(但是建议直接用这个地址作为倒数第二条记录的结束地址)。

以上就是整个数据库的数据部分格式,下方comment(不是大神就是原作者)的帮助下已经补充全了整个数据部分的内容,感谢这位未署名的游客的协助。我的这个分析是从提取数据的算法角度来写的,comment中的是整个数据库的格式总览,表达的意义是相同的。

如果您想要使用本篇介绍的内容,请先参考页面上方或下方的许可协议!

DreamSpark中国版,中国大学生免费下载微软正版软件

就当我Out了吧,今天刚在学校网络中心看见这个微软DreamSpark计划的中国版。虽然资源不算很丰富,但是校内FTP下载速度很快,而且是正版软件哦!

网址:http://dreamspark.eol.cn

目前可以用校内IP直接访问的学校有(可以按Ctrl+F搜索):天津工业大学,湖北工业大学,中国科学技术大学,山西大学,深圳大学,上海大学,长安大学,宁波大学,电子科技大学,南京大学,哈尔滨工业大学,福州大学,重庆邮电大学,东北大学,华东师范大学,北京工业大学,复旦大学,浙江大学,重庆大学,燕山大学,华南理工大学,东南大学,暨南大学,厦门大学,山东大学,北京交通大学,山东海天软件工程专修学院,郑州大学,集美大学,南京理工大学,苏州大学,西安交通大学,中山大学,太原理工大学,哈尔滨工程大学,武汉大学,中国海洋大学,上海交通大学,大连理工大学,西安电子科技大学,北京理工大学,北京科技大学,桂林理工大学,青岛科技大学,中国石油大学(华东),吉林大学。

目前提供的资源包括(经常更新):Visual Studio 2010(仅英文)、2008、2005,Expression Studio 3、4,Windows Server 2008、2008R2,Virtual PC,Internet Explorer 9,Windows CE 6.0等。

对于某些软件(例如Windows Server或CE)需要激活码,就要去国际版的DreamSpark(http://www.dreamspark.com/),申请激活码需要学校提供的@xxx.edu.cn的邮箱,或者用eol提供的邮箱。