piapia123
zh

Magnet 链接校验

网络

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

粘一条磁力链接进来看它到底行不行 —— 不行是哪儿不行,行的话它指向哪个种子。 判据是能不能用,而不是符不符合规范。规范(BEP 9 / BEP 52)对 magnet 的写法有一堆要求,但现实里大量能正常下载的链接并不满足它们:从网页复制来的带着 `&`,中文文件名没做百分号编码,tracker 后面跟着裸空格。把这些一律判成「无效」,红叉旁边却摆着一条明明能用的链接,对谁都没帮助。所以这里的红线只划在真丢进客户端会失败的地方,其余逐条提醒。 真正会失败的有几类:没有 `xt`(客户端不知道要下什么)、哈希位数不对(多半是复制时被截断了)、哈希里有非法字符,以及参数名写成了大写 —— 参数名区分大小写,`XT=` 会被客户端整个忽略,这一条最容易被当成「链接好好的怎么没反应」。 除了判定,还会把 `btih` 的两种写法都列出来。同一个 20 字节哈希既能写成 40 位十六进制,也能写成 32 位 Base32,而不少网站只认其中一种 —— 手里是哪种、另一种长什么样,一看就知道。 最后给一条规范化后的链接:还原 `&`、去掉零宽字符、统一哈希写法、把文件名重新做百分号编码。它与「原样输入」并排 —— 原文一个字都不会被改动。

功能

  • 判定 有效 / 无效,并说清是哪一处不通过
  • hex 与 Base32 两种 infohash 写法互转,各带一键复制
  • 支持 v1(btih / SHA-1)、v2(btmh / SHA-256)与 hybrid 种子
  • 逐项拆出 dn、xl、tr、ws、as、xs、kt、so、x.pe 与未知参数
  • 识别从网页复制来的 &、零宽字符与外层引号
  • 给出一条规范化后的链接,原文同时原样保留
  • 纯本地解析:不联网、不查 DHT、不校验种子是否还有人在做种

使用方法

  1. 粘贴一条 magnet 链接
  2. 第一行给出结论:有效或无效
  3. 往下看标识段 —— 两种哈希写法都在,按需复制
  4. 需要干净的链接时,复制最后那行「规范化链接」

常见问题

它会不会告诉我这个种子还有没有人在做种?
不会,也不打算做。那需要连上 DHT 网络去问,而本站没有任何服务器参与处理 —— 所有计算都在你的浏览器里完成。反过来说,一个种子现在没人做种,也不代表这条链接本身有问题:它是合法的,只是暂时下不动,而这两件事常常被混为一谈。
为什么大写的 XT= 会被判成无效,别的写法却只是提醒?
因为这一条真的会让链接彻底不工作。方案名、参数值的大小写多数地方不敏感,但 magnet 的参数名是敏感的:客户端按小写去找 `xt`,写成 `XT` 就等于没写 —— 表现是「链接看着完全正常,粘进去毫无反应」。这跟「中文文件名没转义」不是一回事,后者绝大多数客户端都容忍。
「规范化链接」会改掉我的东西吗?
只在两种情况下动值:一是粘贴噪声(`&`、零宽字符、外层引号),二是文件名 `dn` 需要重新做百分号编码 —— 裸 `&` 或 `#` 会破坏查询结构,不重编码这条链接在客户端里会解析成别的东西。tracker 与其它参数一律原样保留,认不出的参数也不会被删掉。而且原文单独占一行、一个字都不改,随时可以对照。
Base32 和十六进制,客户端认哪个?
都认,BEP 9 两种写法都写进了规范。但十六进制是绝大多数工具与索引站产出的形式,通用性更好;Base32 是历史上的写法,某些老客户端与聚合站只认十六进制。手里是 Base32 时,用上面那行等价的十六进制更保险。

相关工具