Procedure.s ClientName_Version(String.s) Protected Result.s, Temp, i, ts.s Protected Char.s Result="" If Mid(String, 4, 1)="0" If Mid(String, 3, 1)="0" ts = Left(String, 2) Else ts = Left(String, 3) EndIf Else ts = String EndIf Temp = Len(ts) For i=1 To Temp Char=Mid(ts, i, 1) If (Char>="A" And Char<="Z") Or (Char>="a" And Char<="z") Or Char="." Or Char="-" If Char>="A" And Char<="Z" Result+Str((Asc(Char)-'A')+10) ElseIf Char>="a" And Char<="z" Result+Str((Asc(Char)-'a')+10+('Z'-'A')+1) ElseIf Char="." Result+"62" ElseIf Char="-" Result+"63" Else Result+Char EndIf Else Result+Char EndIf If i"" : Result + " "+Version : EndIf ProcedureReturn Result ElseIf Mid(Name, 1, 1)="-" And Mid(Name, 8, 1)="-" ; Azureus стиль. Prefix = Mid(Name, 2, 2) Version = ClientName_Version(Mid(Name, 4, 4)) x = 0 Select Prefix Case #MyClientID : Result = #ProgName Case "UM", "UT" : Result = "µTorrent" Case "TR" : Result = "Transmission" Case "MG" : Result = "MediaGet" Case "AG", "A~" : Result = "Ares" Case "AR" : Result = "Arctic Torrent" Case "AT" : Result = "Artemis" Case "AX" : Result = "BitPump" Case "AZ" : Result = "Azureus" Case "BB" : Result = "BitBuddy" Case "BC" : Result = "BitComet" Case "BF" : Result = "Bitflu" Case "BG" : Result = "BTG" Case "BL" : Result = "BitBlinder" Case "BP" : Result = "BitTorrent Pro" Case "BR" : Result = "BitRocket" Case "BS" : Result = "BTSlave" Case "BW" : Result = "BitWombat" Case "BX" : Result = "~Bittorrent X" Case "CD" : Result = "Enhanced CTorrent" Case "CT" : Result = "CTorrent" Case "DE" : Result = "DelugeTorrent" Case "DP" : Result = "Propagate Data Client" Case "EB" : Result = "EBit" Case "ES" : Result = "electric sheep" Case "FC" : Result = "FileCroc" Case "FT" : Result = "FoxTorrent" Case "GS" : Result = "GSTorrent" Case "HK" : Result = "Hekate" Case "HL" : Result = "Halite" Case "HM" : Result = "hMule" Case "HN" : Result = "Hydranode" Case "KG" : Result = "KGet" Case "KT" : Result = "KTorrent" Case "LC" : Result = "LeechCraft" Case "LH" : Result = "LH-ABC" Case "LP" : Result = "Lphant" Case "LT" : Result = "libtorrent" Case "lt" : Result = "libTorrent" Case "LW" : Result = "LimeWire" Case "MK" : Result = "Meerkat" Case "MO" : Result = "MonoTorrent" Case "MP" : Result = "MooPolice" Case "MR" : Result = "Miro" Case "MT" : Result = "MoonlightTorrent" Case "NX" : Result = "Net Transport" Case "OS" : Result = "OmegaTorrent" Case "PD" : Result = "Pando" Case "PT" : Result = "PHPTracker" Case "qB" : Result = "qBittorrent" Case "QD" : Result = "QQDownload" Case "QT" : Result = "Qt 4 Torrent example" Case "RT" : Result = "Retriever" Case "RZ" : Result = "RezTorrent" Case "S~" : Result = "Shareaza" Case "SB" : Result = "~Swiftbit" Case "SD" : Result = "Thunder" Case "SM" : Result = "SoMud" Case "SS" : Result = "SwarmScope" Case "ST" : Result = "SymTorrent" Case "st" : Result = "sharktorrent" Case "SZ" : Result = "Shareaza" Case "TN" : Result = "TorrentDotNET" Case "TS" : Result = "Torrentstorm" Case "TT" : Result = "TuoTu" Case "UL" : Result = "uLeecher" Case "VG" : Result = "Vagaa" Case "WT" : Result = "BitLet" Case "WY" : Result = "FireTorrent" Case "XL" : Result = "Xunlei" Case "XS" : Result = "XSwifter" Case "XT" : Result = "XanTorrent" Case "XX" : Result = "Xtorrent" Case "ZT" : Result = "ZipTorrent" Default Result = "???? ("+Mid(Name, 2, 6)+")" x = 1 EndSelect If x=0 And Result<>"" : Result + " "+Version : EndIf ProcedureReturn Result EndIf Temp = FindString(Name, "----",1) If Temp>=5 And Temp<7 Prefix = Mid(Name, 1, 1) Version = ClientName_Version(Mid(Name, 2, Temp-2)) x=0 Select Prefix Case "A" : Result = "ABC" Case "O" : Result = "Osprey Permaseed" Case "R" : Result = "Tribler" Case "S" : Result = "Shadown" Case "T" : Result = "BitTornado" Case "U" : Result = "UPnP NAT" Default Result = "???? ("+Mid(Name, 2, 6)+")" x=1 EndSelect If x=0 And Result<>"" : Result + " "+Version : EndIf ProcedureReturn Result EndIf If Mid(Name, 1, 2)="OP" ; Опера. Result = "Opera "+ClientName_Version(Mid(Name, 3, 4)) ElseIf Mid(Name, 1, 1)="M" And FindString(Name, "--",2)>0 Temp = FindString(Name, "--",2) Result = "Mainline "+ClientName_Version(RemoveString(Mid(Name, 2, Temp-2), "-")) ElseIf Mid(Name, 1, 3)="-ML" And Mid(Name, 9, 1)="-" Result = "MLDonkey "+Mid(Name, 4, 5) ElseIf Mid(Name, 6, 7)="Azureus" Result = "Azureus 2.0.3.2" Else Result = "???? ("+Name+")" EndIf EndIf ProcedureReturn Result EndProcedure ; IDE Options = PureBasic 5.11 (Windows - x86) ; Folding = - ; EnableXP