Client type detection code example
in color
if (substr($peer_id,0,3) == "XBT")
return "XBT Client ".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,4) == "exbc")
return "BitComet";
else if (substr($peer_id,0,2) == "OP")
return "Opera 8 build".substr($peer_id,2,4);
else if (substr($peer_id,0,3) == "-AZ")
return "Azureus ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-BB")
return "BitBuddy".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-CT")
return "CTorrent ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-MT")
return "MoonlightTorrent ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-LT")
return "Libtorrent ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-BX")
return "Bittorrent X ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-TS")
return "TorrentStorm ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-UT")
return "uTorrent ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-QT")
return "QT 4 ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-BC")
return "BitComet ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-BL")
return "BitLord ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-SZ")
return "Shareaza ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-RT")
return "Retriever ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-LP")
return "Lphant ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-TN")
return "TorrentDotNet ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-SS")
return "SwarmScope ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-XT")
return "XanTorrent ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-BS")
return "BTSlave ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-ZT")
return "ZipTorrent ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-AR")
return "Artic ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-SB")
return "Swiftbit ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-MP")
return "MooPolice ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,3) == "-lt")
return "libTorrent ".$peer_id{3}.".".$peer_id{4}.".".$peer_id{5}.".".$peer_id{6};
else if (substr($peer_id,0,1) == "S" && is_int(substr($peer_id,1,3)))
return "Shadow ".$peer_id{1}.".".$peer_id{2}.".".$peer_id{3};
else if (substr($peer_id,0,1) == "U" && is_int(substr($peer_id,1,3)))
return "UPnP NAT Bit Torrent ".$peer_id{1}.".".$peer_id{2}.".".$peer_id{3};
else if (substr($peer_id,0,1) == "T")
return "BitTornado ".$peer_id{1}.".".$peer_id{2}.".".$peer_id{3};
else if (substr($peer_id,0,1) == "O" && is_int(substr($peer_id,1,3)))
return "Osprey Permaseed ".$peer_id{1}.".".$peer_id{2}.".".$peer_id{3};
else if (substr($peer_id,0,2) == "M4" || substr($peer_id,0,2) == "M3")
return "Bittorrent ".str_replace("-",".",substr($peer_id,1,5));
else
return "Unknown";
}