A mio avviso, con la pletora di browser disponibili, ciascuno con le proprie caratteristiche che inoltre variano continuamente tra versioni diverse degli stessi browser, quel tipo di rilevamento non ha più molto senso: piuttosto che capire qual è il browser, qual è la versione e così via, oggi si preferisce attuare la cosiddetta Feature Detection.

In breve, a prescindere dal browser, dalla sua versione, dal vendor e dal motore in questione, si va a verificare nel dettaglio se una determina feature è disponibile oppure no, e in base a quel rilevamento si agisce di conseguenza (ad esempio con un polyfill, ovvero con il "riempimento" di una possibile lacuna con la giusta implementazione) in modo da rendere il sito fruibile allo stesso modo su qualsiasi browser disponibile, in base alle capacità di quest'ultimo piuttosto che discriminandone il nome, il produttore o altre proprietà troppo variabili nelle loro combinazioni.

Fare una "detection" non è così difficile, ma ci sono degli script ampiamente diffusi che consentono già di effettuare quelle principali al nostro posto e spesso costituiscono una dipendenza obbligatoria per determinati plugin o progetti di siti Web.

Uno di questi è Modernizr, a cui darei una occhiata per valutare il principio di funzionamento.

Ciao!