维基百科中的eD2k链接格式如下:
```
ed2k://|类型|其他信息|/
```
其中,各个区域用“|”分隔。注释如下:
- `ed2k://`:协议处理方法,指明该协议是eD2k协议。
- `<类型>`:链接类型,有三种:file(文件)、server(服务器)、serverlist(服务器列表)。
- `<其他信息>`:具体的其他信息。
以文件链接为例,典型的、基础的eD2k文件链接只包含必要的三样信息:文件名、文件大小、文件的eD2k Hash。形如:
```
ed2k://|file|<文件名>|<文件大小>|<文件Hash>|/
```
例如,以下是大小为2868871字节(约2.7MB)的官方eMule v0.49c zip压缩包的eD2k链接的例子:
```
ed2k://|file|eMule0.49c.zip|2868871|0F88EEFA9D8AD3F43DABAC9982D2450C|/
```
eD2k链接也可以包含一个或多个来源的IP地址与端口,形如:
```
ed2k://|file|<文件名>|<文件大小>|<文件Hash>|/|sources,<源IP地址>:<源端口>|/
```
例如:
```
ed2k://|file|eMule0.49c.zip|2868871|0F88EEFA9D8AD3F43DABAC9982D2450C|/|sources,202.89.123.6:4662|/
```
在eMule中,eD2k链接也可以包含根Hash(Root Hash)值。根Hash提供了一个可靠的值用于AICH(高级智能损坏处理),在传输的文件有损坏或错误时进行纠正恢复。包含根Hash的eD2k链接形如:
```
ed2k://|file|<文件名>|<文件大小>|<文件Hash>|h=<根Hash>|/
```
完整的Hashset可以确保文件的正确性,同时也能帮助发布新的和罕见的文件。包含Hashset的eD2k链接格式如下:
```plaintext
ed2k://|file|<文件名>|<文件大小>|<文件Hash>|p=
```
带主机的eD2k链接格式如下:
```plaintext
ed2k://|file|<文件名>|<文件大小>|<文件Hash>|/|sources,<主机名:端口>|/
```
eMule也兼容带HTTP来源的eD2k链接,格式如下:
```plaintext
ed2k://|file|<文件名>|<文件大小>|<文件Hash>|s=<文件的HTTP地址>|/
```
服务器链接:
eDonkey服务器的eD2k链接和文件的eD2k链接类似,它可以指示一个eDonkey服务器地址,格式如下:
```plaintext
ed2k://|server|
|<端口>|/
```
例如:
```plaintext
ed2k://|server|207.44.222.51|4242|/
```
服务器列表链接:
服务器列表链接用于从一个固定的HTTP地址添加server.met服务器列表文件,格式如下:
```plaintext
ed2k://|serverlist|
/
```
Kad节点列表链接:
Kad节点列表链接用于从一个固定的HTTP地址添加nodes.dat Kad节点文件,格式如下:
```plaintext
ed2k://|nodeslist|
/
```
好友链接:
好友链接根据用户哈希值来添加好友,格式如下:
```plaintext
ed2k://|friend|<用户名>|<用户哈希值>|/
```
官方eMule不支持eD2k好友链接添加好友功能,仅Xtreme及Xtreme的Mods(如ScarAngel、Mephisto等)、CN Mod等部分eMule Mods支持此功能。
D2k Hash算法是一种MD4算法的变体。其函数是一个MD4 Hash列表(MD4 Hash List)的MD4根Hash,但与MD4 Hash的结果不同:文件数据被分区成多个9500KB的chunks块和剩余的一个chunk。每个chunk都要计算128-bit MD4 校验和。如果文件长度正好是9500KB的整倍数,剩余的大小为0的chunk依然存在于Hash列表的末尾。将这些chunk的MD4校验和按顺序联合起来,并使用MD4计算Hash,可得到eD2k Hash。对于仅由一个chunk组成的文件(即文件大小小于9500KB),MD4和eD2k Hash是完全相同的。这种方法可以直接将Hash列表与原eD2k Hash进行验证,而无需使用文件块来验证。
标签 eD2k 链接 维基 百科 eD2k 大致形如 ed