我正在学习 bittorrent 协议并且有一个我不太确定的问题。
根据BEP009,
磁铁 URI 格式
磁铁 URI 格式为:
v1: 磁铁:?xt=urn:btih:info-hash&dn=name&tr=tracker-url
v2: 磁铁:?xt=urn:btmh:tagged-info-hash&dn=name&tr=tracker-url
info-hash是十六进制编码的 info-hash,总共 40 个字符。为了与现有链接兼容,客户端还应支持 32 个字符的 base32 编码信息哈希。
tagged-info-hash是多哈希格式、十六进制编码的完整信息哈希,用于新元数据格式的种子。'btmh' 和 'btih' 确切的主题可能存在于同一个磁体中,如果它们描述相同的混合种子。
示例磁铁链接:magnet:?xt=urn:btih:407AEA6F3D7DC846879449B24CA3F57DB280DE5C&dn=ubuntu-educationpack_14+04_all&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexplodie.org%3A6969
如果我错了,请纠正我,但urn:btih:407AEA6F3D7DC846879449B24CA3F57DB280DE5C
来自info-hash
磁铁链接,我需要对其进行解码才能获得bencoded
元数据,例如BEP015中列出的元数据。诸如:downloaded, left, uploaded, event, etc.
我的问题是,如何在 python 中解码?