Prima di tutto, non ci si può fidare delle stringhe dell'Agente Utente. I browser possono, e vogliono, mentire a voi - in particolare i browser per dispositivi mobili, poiché spesso dispongono di funzionalità che possono essere considerate la versione desktop come una casella di controllo facile da trovare. Ma sono l'unico modo per ottenere qualsiasi informazione di sistema da ogni browser.
Suppongo che, dal momento che stai guardando le statistiche, potrai salvare tutte le stringhe UA che ricevi da qualche parte.
Grazie a decenni di standard incoerenti hai bisogno di rassegnarti al fatto che i produttori di browser hanno riempito le loro stringhe UA con un sacco di assurdità e che dovrai sbrogliare quel casino e fare un po 'di analisi e, anche mettendoci un sacco di tempo, non sarà mai perfetto.
Per prima cosa devi capire il formato delle stringhe UA. Le stringhe UA dovrebbero essere del formato:
Mozilla/5.0 (platform(comment); ...; ...) extension/version ... ...
Internet Explorer si riporta sotto la sezione "Piattaforma", nell'elenco dei punti delimitati da parentesi tra parentesi, la maggior parte degli altri browser riporta se stessi nell'area "Estensione".
Secondo la guida alle stringhe User-Agent su MDN e l'elenco completo su UserAgentString.com segue come segue adesso :
-
L'ultima estensione di Edge è "Edge (versione)"
-
Internet Explorer contiene la stringa "MSIE (versione)" nella sezione "Prodotto"
- Alcuni browser, come il browser incorporato AOL, riportano MSIE e lo seguono con AOL (versione)
-
Safari termina sempre con "Safari / (versione)", e non includi "Chrome" come estensione
-
Firefox finisce sempre con "Firefox / (versione)"
-
Chrome termina sempre con "Chrome / (versione) Safari / (versione)"
- Altri browser meno conosciuti (come Opera) spesso imitano la stringa UA di Chrome o di Firefox, ma aggiungono il loro browser alla fine, quindi sarebbe "Firefox / (versione) (MyBrowser) / (versione)"
Da qui dovresti essere in grado di scrivere un programma che comprenda, con una precisione decente, ciò che ciascun browser ti sta dicendo. Otterrai falsi positivi e probabilmente alcuni falsi negativi, ma spetta a te decidere quanto lavoro impiegare per migliorare la tua precisione.
Ad esempio, la stringa UA che hai postato in risposta a Jorg
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/63.0.3239.132 Safari/537.36"
è più che probabile da Chrome, non da Edge, poiché non termina con Edge / (versione). Infatti non include Edge in nessuna parte della stringa UA. Anche in questo caso, se ha venuto da Edge, è probabile che si verifichi qualche spoofing UA e, in tal caso, non puoi discerne in modo affidabile.
[Modifica] (Come per il commento qui sotto, Edge non riporta sempre 'Edge', ma riporta "Windows NT 10.0; Win64; x64" nella sua area Piattaforma.)
Ora, se questo sembra un sacco di lavoro (e lo è) potresti semplicemente andare con un sistema standard, come Google Analytics *, che ha già messo in opera per te e funziona abbastanza bene e fare molto di più rispetto alla semplice segnalazione sull'utilizzo del browser.
* (sono disponibili altri servizi di analisi)