/// <summary>
		/// Determines what client the peer is using.
		/// </summary>
		/// <param name="id">Peer ID</param>
		/// <param name="versionNumber">Version of the client (if it can be determined)</param>
		/// <returns>Type of client used by peer</returns>
		public static PeerClientType DetermineClientType( ByteField20 id, out string versionNumber )
		{
			PeerClientType clientType = PeerClientType.Unknown;
			versionNumber = "";

			if (id == null)
				return PeerClientType.Unknown;

			string strId = id.ToString();
			
			// first check for Azurues-style
			if ( IsValidAzereusStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			// then check for shadow-style
			if ( IsValidShadowStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsOldBitCometStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsXBTStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsOperaStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsMLDonkeyStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsBitsOnWheelsStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsBitTyrantStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsTorrenTopiaStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsBitSpiritStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsRufusStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsG3Style( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsFlashGetStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsBTNextEvolutionStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsAllPeersStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsQvodStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;
			if ( IsValidBramStyle( strId, ref clientType, ref versionNumber ) )
				return clientType;

			return clientType;
		}
Exemple #2
0
        /// <summary>
        /// Determines what client the peer is using.
        /// </summary>
        /// <param name="id">Peer ID</param>
        /// <param name="versionNumber">Version of the client (if it can be determined)</param>
        /// <returns>Type of client used by peer</returns>
        public static PeerClientType DetermineClientType(ByteField20 id, out string versionNumber)
        {
            PeerClientType clientType = PeerClientType.Unknown;

            versionNumber = "";

            if (id == null)
            {
                return(PeerClientType.Unknown);
            }

            string strId = id.ToString();

            // first check for Azurues-style
            if (IsValidAzereusStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            // then check for shadow-style
            if (IsValidShadowStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsOldBitCometStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsXBTStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsOperaStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsMLDonkeyStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsBitsOnWheelsStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsBitTyrantStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsTorrenTopiaStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsBitSpiritStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsRufusStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsG3Style(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsFlashGetStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsBTNextEvolutionStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsAllPeersStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsQvodStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }
            if (IsValidBramStyle(strId, ref clientType, ref versionNumber))
            {
                return(clientType);
            }

            return(clientType);
        }