/// <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; }
/// <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); }