Quelle est la liste des valeurs possibles pour navigator.platform à partir d'aujourd'hui? [fermé]

93

Je sais que cela change assez souvent, mais existe-t-il une liste aussi exhaustive que possible des valeurs possibles renvoyées par navigator.platform?

Liste jusqu'à présent:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • SunOS
  • Win16
  • Win32
  • Grimacer
  • iPhone
  • iPod
  • iPad
  • Android
  • La mûre
  • Opéra
Thomasstephn
la source
1
Avez-vous regardé browscap.ini? Le projet a été redémarré plus tôt cette année.
Robbert
1
Oui, mais cela ne donne pas du tout une liste à jour. Par exemple, l'iPad n'est pas dedans
thomasstephn

Réponses:

163

Avertissement: veuillez noter que cette propriété est envoyée par le navigateur et peut donc être falsifiée, tout comme les chaînes d'agent utilisateur. Ne comptez jamais sur l' navigatorobjet pour être complètement précis.

La définition

Pour autant que je sache, il n'y a pas une seule liste publique de toutes les valeurs possibles de `navigator.platform`, même si la propriété existe depuis un certain temps. Pour aggraver les choses, la définition de la propriété a changé au fil des ans. C'était autrefois:

navigator.platform indique le type de machine pour lequel le navigateur a été compilé.

Cela signifie essentiellement que la propriété peut être renvoyée Win16lorsque l'utilisateur exécute un navigateur compilé pour 16 bits, même si l'utilisateur se trouve sur une machine Windows 32 bits ou 64 bits.

Bien sûr, W3Schools répertorie l'ancienne définition (je ne vais même pas y faire un lien). W3 et MDN se sont cependant mis d'accord sur une définition différente:

navigator.platform représente la plate-forme sur laquelle le navigateur s'exécute.

Pourtant, cette définition est un peu vague. Il y a dix ans, une «plate-forme» était soit une architecture de processeur, soit un système d'exploitation. Ces dernières années, les appareils portables et multimédias peuvent également être des plates-formes.


L'interprétation

Comme pour tout sur le Web, notre destin est entre les mains des puissants fournisseurs de navigateurs. Dans ce cas, tous les principaux navigateurs (IE, Safari, Firefox et Chrome) conviennent que ma machine Windows 64 bits est une plate-forme `Win32`. Cela signifie qu'ils s'en tiennent à l'ancienne définition pour Windows, car aucun d'entre eux n'est compilé pour 64 bits jusqu'à présent. Regardez du bon côté cependant: au moins ils sont tous d'accord sur quelque chose pour une fois.

Il semble que nous soyons un peu plus chanceux en ce qui concerne les appareils portables et multimédias. Comme vous l'avez déjà dit dans votre question, l'iPhone, l'iPod et l'iPad ont chacun une valeur unique, même s'ils utilisent tous le même système d'exploitation. Tous les appareils de Nintendo et de Sony renvoient également des valeurs uniques. Alors seulement maintenant navigator.platformcommence à paraître intéressant.

Mais ensuite Opera Mini pour iPhone arrive, gâchant à nouveau les choses. Opera Mini renvoie en fait un numéro de version du moteur de code, ce qui est une interprétation complètement différente platformde tout ce que nous avons rencontré jusqu'à présent. Alors maintenant, nous sommes revenus là où nous avons commencé et nous commençons à comprendre pourquoi il y a si peu d'informations sur ce sujet là-bas.

Même si les interprétations varient et que je n'ai pas de réponse complète pour vous, j'ai eu le sentiment que je devrais ajouter mes 2 cents pour quiconque recherche la navigator.platformpropriété.


La liste

Vous trouverez ci-dessous une liste (certainement non définitive) des valeurs que je connais que je pourrais vérifier avec plusieurs sources. En raison de la définition vague, je ne sais pas trop quelle est la meilleure façon de les commander. Pour l'instant, je les ai divisés en quelques catégories en fonction du système d'exploitation ou de la marque de l'appareil et j'ai répertorié des informations supplémentaires et des dates de sortie, le cas échéant.

Android

Il est vraiment difficile de tester les appareils Android. Les appareils Android reviendront Androidaussi souvent que certaines versions de Linux. Par exemple, sur un téléphone Nexus 5, le navigateur Android et Chrome reviennent Linux armv7l. Dans de rares cas, les appareils Android peuvent même revenir null(au lieu de undefined).

  • Android (2008)
  • Linux: voir les notes ci-dessus
  • null

Pomme

En ce qui concerne iOS: Safari, Chrome et Mercury sont d'accord, mais Opera gâche les choses.

  • iPhone (2007)
  • iPod (2007)
  • iPad (2010)
  • iPhone Simulator: simulateur livré avec Xcode
  • iPod Simulator: simulateur livré avec Xcode
  • iPad Simulator: simulateur livré avec Xcode
  • Macintosh
  • MacIntel: Processeur Intel (2005)
  • MacPPC: Processeur PowerPC
  • Mac68K: Processeur 68000
  • Pike v7.6 release 92: Opera Mini 5 sur n'importe quel iPhone (2009)
  • Pike v7.8 release 517: Opera Mini 7 sur n'importe quel iPhone (2012)

La mûre

  • BlackBerry (2003)

FreeBSD

  • FreeBSD
  • FreeBSD i386: processeur x86 (IA-32)
  • FreeBSD amd64: Processeur AMD x86-64

Linux

Sérieusement peu fiable car de nombreuses plates-formes sont construites sur cela. Par exemple, Chrome sur ChromeOS ou Linux x86-64 reviennent tous les deux Linux i686car c'est pour cela qu'ils ont été compilés.

Remarque Linux ARM répertorie les indicateurs d'architecture, par exemple armv5tejdénoterait une architecture ARM v5 avec le support Thumb ('T'), un jeu d'instructions DSP ('E') et le support Jazelle ('J').

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux armv6l
  • Linux armv7l
  • Linux armv8l
  • Linux i686
  • Linux i686 on x86_64
  • Linux i686 X11: basé sur X11 Window System
  • Linux MSM8960_v3.2.1.1_N_R069_Rev:18: Sony Xperia V
  • Linux ppc64
  • Linux x86_64
  • Linux x86_64 X11: basé sur X11 Window System

Microsoft

Même sur un Windows 8 64 bits, ils s'en tiennent tous Win32.

  • OS/2 (1994 †)
  • Pocket PC
  • Windows
  • Win16: Windows 3.1x (1992 †)
  • Win32: Windows 95 et plus
  • WinCE

Mozilla (Firefox OS)

Une chaîne vide est renvoyée dans le navigateur Web sur Firefox OS. Voir ce rapport de bogue .

KaiOS

Le navigateur Web sur KaiOS (basé sur Firefox) renvoie également la chaîne vide (identique à Firefox OS). Voir ce rapport de bogue .

Nintendo

  • New Nintendo 3DS (2014)
  • Nintendo DSi (2008)
  • Nintendo 3DS (2011)
  • Nintendo Wii (2006)
  • Nintendo WiiU (2012)

OpenBSD

  • OpenBSD amd64

Symbian / S40

  • Nokia_Series_40 (1999 †)
  • S60 (2002 †)
  • Symbian: Opera sur Symbian
  • Symbian OS

Paume

  • PalmOS (1996)
  • webOS (2009)

Solaris

  • SunOS
  • SunOS i86pc
  • SunOS sun4u: Processeur SPARC

Sony

  • PLAYSTATION 3 (2006)
  • PlayStation 4 (2013)
  • PSP: PlayStation Portable (2004)

Divers

  • HP-UX: Hewlett-Packard UniX
  • masking-agent: la valeur est modifiée lors de l'utilisation de Masking Agent pour Firefox
  • WebTV OS
  • X11: Système de fenêtre X11

Vous avez un appareil qui ne figure pas sur cette liste? Veuillez laisser un commentaire listant les propriétés de votre appareil et sa navigator.platformvaleur (n'hésitez pas à utiliser ce JSFiddle pour trouver la valeur).

J'espère que cela t'aides.

Robbert
la source
Heureux d'être utile, Thomas.
Robbert
Pour info, certains navigateurs 64 bits existent, même IE, si vous pouvez le déterrer. Ainsi, Win64 peut parfois apparaître. Le renifleur de mon navigateur est configuré pour le voir et marquer le navigateur comme exécutant 64 bits. Liste très complète sinon .. merci. :)
Bezelith
Il y en a quelques autres sur cette liste: books.google.com/…
hexalys
@Bezelith: merci! J'ai également vu des gens essayer de détecter des systèmes 64 bits avec navigator.cpuClasset navigator.appVersion, mais aucun des deux ne semble fiable jusqu'à présent. @hexalys: merci aussi, j'ai ajouté ces chaînes à la liste.
Robbert
1
Je ne suis pas en mesure de vérifier pour le moment, mais n'y en aurait-il pas également pour la Xbox 360, la Xbox One, la PS4?
John Odom
21

Je peux ajouter à cette liste des valeurs définitives pour des appareils spécifiques que j'ai testés.

Là où se trouve la chaîne Linux armv7l, elle se termine par une minuscule L(pour «Linux, probablement?), Plutôt que par un nombre 1ou une minuscule I.

Pour les appareils iOS, les tests ont été effectués dans Safari. Pour les appareils Android, les tests ont été effectués dans le navigateur de stock ou dans Chrome si aucun navigateur de stock n'était installé.

Parmi les tablettes Windows, le Nokia Lumia exécutait Windows RT 8.1 avec IE 11.0.9600.16476 et le MS Surface exécutait Windows 8.1 Pro avec IE 11.0.9600.16438.

Parmi les appareils Windows Phone, le Nokia Lumia exécutait Windows Phone 8.1 et IE 11.

Téléphone (s

Device                           OS               window.navigator.platform
---------------------------------------------------------------------------
iPhone 4                         iOS 7.1          iPhone
iPhone 5                         iOS 7.1.1        iPhone
iPhone 5c                        iOS 7.1          iPhone
iPhone 5s                        iOS 7.1          iPhone

Samsung Galaxy S2                Android 4.1.2    Linux armv7l
Samsung Galaxy S3 Mini           Android 4.1.2    Linux armv7l
Samsung Galaxy S3                Android 4.3      Linux armv7l
Samsung Galaxy S4                Android 4.4.2    Linux armv7l
Samsung Galaxy Note 3            Android 4.4.2    Linux armv7l
Samsung Galaxy S6                Android 5        Linux aarch64

Nexus 4                          Android 4.4.2    Linux armv7l
Nexus 5                          Android 4.4.2    Linux armv7l

HTC One                          Android 4.4.2    Linux armv7l
Sony Xperia Z                    Android 4.2.2    Linux armv7l
Motorola Moto G                  Android 4.4.2    Linux armv7l

Nokia Lumia 1520                 Windows 8.1      Win32

Comprimés

Device                           OS               window.navigator.platform
---------------------------------------------------------------------------
iPad 2nd generation              iOS 6.1.3        iPad
iPad 2nd generation              iOS 7.0.3        iPad
iPad 4th generation              iOS 6.1.2        iPad
iPad 4th generation              iOS 6.1.3        iPad
iPad mini (non retina)           iOS 6.1.3        iPad
iPad mini (retina)               iOS 7.0.3        iPad

Samsung Galaxy Tab 2 7"          Android 4.0.3    Linux armv7l
Samsung Galaxy Tab 3 7"          Android 4.1.2    Linux armv7l
Samsung Galaxy Tab 3             Android 4.2.2    Linux i686
Samsung Galaxy Note 10.1 (2012)  Android 4.1.2    Linux armv7l
Samsung Galaxy Note 10.1 (2014)  Android 4.3      Linux armv7l

Nexus 7 (2012) 7"                Android 4.4.3    Linux armv7l
Nexus 7 (2013) 7"                Android 4.3      Linux armv7l
Nexus 10                         Android 4.4.2    Linux armv7l

Lenovo Yoga                      Android 4.2.2    Linux armv7l
Sony Xperia Z                    Android 4.3      Linux armv7l
Tesco Hudl 7"                    Android 4.2.2    Linux armv7l
Kindle Fire 7" (2012)            Unknown          Linux armv7l
Kindle Fire HDX 7" (2013)        Unknown          Linux armv7l

Asus Transformer Pad TF300T      Android 4.0.3    Linux armv7l

Nokia Lumia 2520                 Windows RT 8.1   Win32
MS Surface Tablet Pro            Windows 8.1 Pro  Win64

Desktop PC (HP)                  Windows 7 Ent.   Win32
Desktop PC (iMac)                OSX 10.8.5       MacIntel
BillyRayPreachersFils
la source
Excellent ajout à ma tentative de liste initiale, bon travail! Même iOS peut toujours renvoyer un identifiant différent dans un navigateur différent, notamment Opera Mini. Nous avons besoin d'un site Web qui teste toutes les combinaisons de périphérique / OS / navigateur ou quelque chose ...
Robbert
1
Les architectures ARM utilisent des suffixes minuscules pour indiquer les fonctionnalités de variante. Autant que je sache, les lsignifie little-endian (stocker le LSB dans la plus petite adresse, si cela a du sens). Il y a cependant beaucoup trop de variantes à suivre.
Robbert
9

Je n'ai pas pu poster de commentaire, donc je laisse ceux-ci je pense ne pas être mentionnés ci-dessus:

+-----+--------------+--------------------------------------+
| iid | item         | value                                |
+-----+--------------+--------------------------------------+
| 448 | nav_platform | Linux armv7l                         |
| 454 | nav_platform | ARM                                  |
| 455 | nav_platform | Linux x86_64                         |
| 457 | nav_platform | PlayStation 4                        |
| 459 | nav_platform | masking-agent                        |
| 460 | nav_platform | OpenBSD amd64                        |
| 464 | nav_platform | FreeBSD amd64                        |
| 465 | nav_platform | Linux armv5tejl                      |
| 466 | nav_platform | Symbian OS                           |
| 467 | nav_platform | New Nintendo 3DS                     |
| 470 | nav_platform | Linux armv6l                         |
| 471 | nav_platform | FreeBSD                              |
| 472 | nav_platform | Symbian                              |
| 473 | nav_platform | Linux MSM8960_V3.2.1.1_N_R069_Rev:18 |
| 476 | nav_platform | Linux aarch64                        |
| 479 | nav_platform | Linux i686 on x86_64                 |
| 480 | nav_platform | Linux ppc64                          |
+-----+--------------+--------------------------------------+

"masking-agent" est une extension de confidentialité du navigateur qui change la plate-forme par défaut.

L'étrange long est un Sony Z10

Justin
la source
Merci beaucoup pour ces ajouts. Je les ai ajoutés à la liste. Sony Z10détient maintenant la couronne pour la navigator.platformvaleur la plus longue .
Robbert
@justin Savez-vous quelle extension de confidentialité du navigateur change la valeur en "masking-agent"? edit: peu importe, je vois addons.mozilla.org/en-US/firefox/addon/masking-agent , mais je suppose que je m'interroge toujours sur Chrome ou d'autres navigateurs, si quelqu'un le sait.
user4851
@ user4851 addons.mozilla.org/en-US/firefox/addon/masking-agent n'est plus disponible
Christophe Roussy