#22646 - Trouver les informations de votre navigateur - le hollandais volant
Mon outil ici fonctionne avec l’user-agent. Mais cet header va progressivement être remplacée par les "client hints" (CH).
Voir là :
https://developers.whatismybrowser.com/learn/browser-detection/client-hints/detect-windows-11-client-hints
https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Client_hints
C’est déjà nécessaire pour détecter Windows 11, car son UA renvoie la même donnée que Windows 10.
Pour l’implémentation, en PHP, il faut demander les en-têtes spécifiquement :
header("accept-ch: Sec-CH-UA-Platform,Sec-CH-UA-Platform-Version");
En ensuite, on analyse la réponse :
if (isset($_SERVER['HTTP_SEC_CH_UA_PLATFORM']) && isset($_SERVER['HTTP_SEC_CH_UA_PLATFORM_VERSION'])) {
$platform = $_SERVER['HTTP_SEC_CH_UA_PLATFORM'];
$platformVersion = $_SERVER['HTTP_SEC_CH_UA_PLATFORM_VERSION'];
if (strpos($platform, 'Windows') !== false) {
$platformVersion = str_replace(['"',"'"], "", $platformVersion);
if (version_compare($platformVersion, '13.0', '>=')) {
echo 'CH given : Windows 11';
}
} else {
echo 'CH given : no Windows';
}
} else {
echo 'no CH version given';
}
Oui, Windows 11 renvoie une version NT de 13 (mais aussi 14 parfois et chez moi c’est même 15 (en fait c’est "15.0.0", avec les double-quotes…), donc ça promet un bordel au moins aussi intéressant que pour le merdier des UA.
À voir à l’œuvre ici : https://lehollandaisvolant.net/tout/tools/browser/hints.php (pour ne détecter que W11)
Ça marche seulement dans les navigateurs *Chromium, pas sous Firefox (ni Safari).
Vivaldi sous Linux les implémente bien.
Je rappelle quand-même que tout ça c’est pas fait pour détecter des navigateurs en vue discriminer des fonctionnalités (comme c’était largement fait par le passé avec les UA). Je ne vois pas trop de cas de figures techniquement légitimes, si ce n’est permettre à l’utilisateur de savoir ce qu’il utilise.