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";
}