BitTorrent协议标准之peer_id
邵正雅
2023-12-01
peer_id用20个byte,长度固定。
关于peer_id的命名方法有很多种,业界大概几种情况如下:
第一种:(最流行的一种)
"-XXNNNN-"+随机数字。至于后面的是不是随机数字不重要,重要的是它们前面的前缀比较统一,XX用两个字符表示BT客户端软件的缩写,NNNN用4个数字表示BT客户端软件的版本。使用这种方式的BT软件很多,有下面这些:
'AG' - Ares
'A~' - Ares
'AR' - Arctic
'AV' - Avicora
'AX' - BitPump
'AZ' - Azureus
'BB' - BitBuddy
'BC' - BitComet
'BF' - Bitflu
'BG' - BTG (uses Rasterbar libtorrent)
'BR' - BitRocket
'BS' - BTSlave
'BX' - ~Bittorrent X
'CD' - Enhanced CTorrent
'CT' - CTorrent
'DE' - DelugeTorrent
'DP' - Propagate Data Client
'EB' - EBit
'ES' - electric sheep
'FT' - FoxTorrent
'GS' - GSTorrent
'HL' - Halite
'HN' - Hydranode
'KT' - KTorrent
'LH' - LH-ABC
'LP' - Lphant
'LT' - libtorrent
'lt' - libTorrent
'LW' - LimeWire
'MO' - MonoTorrent
'MP' - MooPolice
'MR' - Miro
'MT' - MoonlightTorrent
'PD' - Pando
'qB' - qBittorrent
'QD' - QQDownload
'QT' - Qt 4 Torrent example
'RT' - Retriever
'S~' - Shareaza alpha/beta
'SB' - ~Swiftbit
'SS' - SwarmScope
'ST' - SymTorrent
'st' - sharktorrent
'SZ' - Shareaza
'TN' - TorrentDotNET
'TR' - Transmission
'TS' - Torrentstorm
'TT' - TuoTu
'UL' - uLeecher!
'UT' - µTorrent
'WT' - BitLet
'WY' - FireTorrent
'XL' - Xunlei
'XT' - XanTorrent
'XX' - Xtorrent
'ZT' - ZipTorrent
第二种:采用一个字符在最前面表示BT客户端软件的缩写,用后面5个字符表示BT客户端的版本字符串,如果不足5个字符,后面的用字符'-'补齐,再后面跟着三个字符'---',再后面的可能就是随机字符了。
对于版本字符串,'0'=0....'9'=9...'A'=10....'Z'=35 'a'=36....'z'=61 '.'=62 '-'=63。
比如 'S58B-----'表示 for Shadow's 5.8.11。用这种方式的有下面几种
'A' - ABC
'O' - Osprey Permaseed
'Q' - BTQueue
'R' - Tribler
'S' - Shadow's client
'T' - BitTornado
'U' - UPnP NAT Bit Torrent
第三种:BitComet的早版本(0.59以前)的用的,用"exbc"+xy+随机数,x和y用两个数字表示版本号。BitComent0.59后切换到第一种方式了。BitLord也是这种,只不过不是exbc,而是LORD。
第四种:XBT Client用的。用"XBT"+3个数字+(d/-)+"-"+随机数,如果是"d"表示debug,"-"表示非debug。
等等。还有一些用的比较少的,比如
MLdonkey用'-ML'+(版本,如2.7.2)+'-'+随机
BitSpirirt用"/0/3BS"(3.x版本)或者"/0/2BS"(2.x版本)+"UDP0"+随机