2010年11月1日星期一

eMule分析之ED2K链接格式的创建

ED2K链接格式的创建

基本ed2k链接 : ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|/

eD2k片段哈希值链接  ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|p=<片段哈希值>|/

eD2k来源链接 ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|/|sources,<IP:端口>|/

eD2k主机链接 ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|/|sources,<主机名称:端口>|/

eD2kHTTP 来源链接 ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|s=http://any.com/文件名称|/

eD2k根哈希值链接 ed2k://|file|<文件名称>|<文件大小>|<文件哈希值>|h=<根哈希值>|/

以上这几种格式网上经常见到


ed2k://|server|1.1.1.1|1986|/ 是用来添加下载时服务器用的 前面是IP 后面4位是端口 顺便说明下这里的服务器是不存放具体要下载的文件的,而且通过P2P连接不同拥有这个文件的客户端. 因为每个文件的HASH是不同的 举个例子吧~
ed2k://|file|[聖槍修女].[Chrno_Crusade]11[GB][POPGO][Serials].rmvb|80289173|EADF4545B9ABB73BB296440512D96754|/ 事实上文件名只是完成下载后的保存名字,实际连接是通过HASH的比对,当然你从其他客户端接受到的分块也是会进行验证的.

1 文件哈希值
将文件分成每块9.28M大小,一块9.28M通过Hash算法(md4)生成一个Hash值,然后根据所有的hash值,再次hash(md4)生成一个Hash值.最后这次计

算的hash值就是文件hash值

2 P=片段哈希值(HashSet)
如果文件大于等于9.28M
每个9.28M的部分将产生一个32个字符的hash值,每32个字符之间用:号隔开

如果小于9.28M,那么ED2K链接中的片段Hash值为空

3 h=根哈希值(AICH)

这里的是分割9.28M的块,将9.28M(9500K)分成53块,52块180K和1块140K,将所有180K或140K的块的hash,包括校验hash组成树,链接中只有AICHHash树的根

没有评论:

发表评论