Valeur de la variable HTTP_USER_AGENT

WRInaute occasionnel
Bonsoir,

J'aimerai connaitre toutes les valeurs possibles et imaginables de la variable d'environement HTTP_USER_AGENT, et plus précisement au niveau du système d'exploitation, que ce soit pour les mobiles que pour le reste. Par exemple Windows NT, Windows CE, Linux, etc.

Si vous pouviez me répondre, ça me rendrait un grand service.

Merci.
 
WRInaute accro
John Smith a dit:
J'aimerai connaitre toutes les valeurs possibles et imaginables de la variable d'environement HTTP_USER_AGENT

Toutes? J'en ai 5 707 725 dans ma base de données... Faut dire qu'il y a des extensions qui sont bavardes et qui rajoutent une tripotée de trucs, avec souvent des valeurs "uniques" (UUIDs ou choses du genre) à chaque installation.

Il vaut mieux parser la chose si tu veux en tirer quelque chose, avec les réserves d'usage...

Jacques.
 
WRInaute occasionnel
jcaron a dit:
John Smith a dit:
J'aimerai connaitre toutes les valeurs possibles et imaginables de la variable d'environement HTTP_USER_AGENT

Toutes? J'en ai 5 707 725 dans ma base de données... Faut dire qu'il y a des extensions qui sont bavardes et qui rajoutent une tripotée de trucs, avec souvent des valeurs "uniques" (UUIDs ou choses du genre) à chaque installation.

Il vaut mieux parser la chose si tu veux en tirer quelque chose, avec les réserves d'usage...

Jacques.

Très bien mais il n'existe pas 5 millions d'OS quand même ! J'en ai répertorier une dizaine mais il me manque ceux des mobiles et autre pocket PC !...
 
WRInaute accro
John Smith a dit:
jcaron a dit:
John Smith a dit:
J'aimerai connaitre toutes les valeurs possibles et imaginables de la variable d'environement HTTP_USER_AGENT

Toutes? J'en ai 5 707 725 dans ma base de données... Faut dire qu'il y a des extensions qui sont bavardes et qui rajoutent une tripotée de trucs, avec souvent des valeurs "uniques" (UUIDs ou choses du genre) à chaque installation.

Il vaut mieux parser la chose si tu veux en tirer quelque chose, avec les réserves d'usage...

Jacques.

Très bien mais il n'existe pas 5 millions d'OS quand même ! J'en ai répertorier une dizaine mais il me manque ceux des mobiles et autre pocket PC !...
Si je ne me trompe pas, le USER_AGENT n'est pas l'OS, c'est le Navigateur. Et sa version précise.
 
WRInaute occasionnel
Szarah a dit:
Si je ne me trompe pas, le USER_AGENT n'est pas l'OS, c'est le Navigateur. Et sa version précise.

Si, si, l'OS aussi !

Code:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
 
WRInaute discret
Certes, le User Agent indique souvent (pas toujours) le navigateur utilisé et l'OS sur lequel ce dernier tourne.

Cependant, Javascript permet d'accéder à une information plus spécifique sur l'OS uniquement. On y accède via navigator.platform.

Par contre, je ne crois pas qu'il y ait d'équivalent en HTTP 1.1.

Sinon:
http://www.user-agents.org/
 
WRInaute accro
John Smith a dit:
Très bien mais il n'existe pas 5 millions d'OS quand même ! J'en ai répertorier une dizaine mais il me manque ceux des mobiles et autre pocket PC !...

Ben vu comme le format du User-Agent est complètement libre:
1. il ne contient pas toujours l'OS
2. même s'il devait le contenir, il y a beaucoup d'outils de "protection de la vie privée" qui masquent tout ou partie de cette info
3. le header n'a pas toujours le même format
4. donc si l'OS est présent, il n'est pas toujours au même endroit

D'ailleurs si tu avais vu quelques UAs de browsers mobiles tu te rendrais compte de l'horreur que ça donne...

Ceci dit, si tu es prêt à tenter de parser la chaîne pour en extraire quelque chose, voici quelques valeurs que tu peux trouver à droite ou à gauche (en vrac):

Linux 2.2.19 i586
Macintosh
MobilePhone SCP-7300/IU/1.0
MobilePhone SCP-7400/NZ/1.0
OS/2
Symbian OS
Win95
Windows
Windows 95
Windows NT 5.1
X11
MSIE 5.0 Windows 2000
MSIE 5.0 Windows NT 5.0
MSIE 5.0 Windows NT 5.1
MSIE 5.01 Windows 2000
MSIE 5.01 Windows NT 5.0
MSIE 5.01 Windows NT 5.1
PPC Mac OS X
FreeBSD i386
J2ME
Linux
Linux 2.4.18doc i586
Linux 2.6.3-7mdk
Linux 2.6.8.1-3
Linux i386
Linux i586
Linux i686
Linux x86_64
Mac_PowerPC
NetBSD i386
OpenBSD i386
PPC
PPC Mac OS X
PPC Mac OS X Mach-O
Series80/2.0 Nokia9500/4.34.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
Series90/1.1 Nokia7710/2.08.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
SunOS sun4u
Win 9x 4.90
Win32
Win64
Win95
Win98
WinNT4.0
Windows
Windows 2000
Windows 95
Windows 98
Windows 98;CP=MS
Windows CE
Windows ME
Windows NT
Windows NT 32.32
Windows NT 4.0
Windows NT 5.0
Windows NT 5.01
Windows NT 5.0;
Windows NT 5.0;.NET CLR 1.0.3705
Windows NT 5.1
Windows NT 5.2
Windows NT 5horaSV1
Windows NT+5.1
Windows XP
Windows XP / Arcor 2.0
i686 Linux
.NET CLR 1.0.2914
.NET CLR 1.0.3215
.NET CLR 1.0.3705
.NET CLR 1.1.3705
.NET CLR 1.1.4322
.NET CLR 2.0.40607
.NET CLR 2.0.50215
Nokia 6600;451
O2 Xda 2s;PPC;240x320
O2 Xda II;PPC;240x320

Quelques UAs "complets" à des formats un peu moins habituels (i.e. qui ne commencent pas par Mozilla):
Nokia3100/1.0 (03.10) Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia3100/1.0 (05.02) Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia3100b/1.0 (04.03) Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia3200/1.0 () Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Link/1.1 (Google WAP Proxy/1.0)
Nokia3220/2.0 (03.30) Profile/MIDP-2.0 Configuration/CLDC-1.1 (Google WAP Proxy/1.0)
Nokia3220/2.0 (03.60) Profile/MIDP-2.0 Configuration/CLDC-1.1 (Google WAP Proxy/1.0)
Nokia3510i/1.0 (05.25) Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia6100/1.0 (04.01) Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Link/1.1 (Google WAP Proxy/1.0)
Nokia6100/1.0 (04.70) Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia6100/1.0 (05.51) Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia6230/2.0 (03.15) Profile/MIDP-2.0 Configuration/CLDC-1.1 (Google WAP Proxy/1.0)
Nokia6230/2.0 (04.44) Profile/MIDP-2.0 Configuration/CLDC-1.1
Nokia6230/2.0 (04.44) Profile/MIDP-2.0 Configuration/CLDC-1.1 (Google WAP Proxy/1.0)
Nokia6260/2.0 (3.0452.0ch) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia6600/1.0 (4.09.1) SymbianOS/7.0s Series60/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia6600/1.0 (5.27.0) SymbianOS/7.0s Series60/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia6610I/1.0 (3.10) Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia6670/2.0 (4.0437.4) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
Nokia6670/2.0 (4.0437.4) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia7210/1.0 (5.63) Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia7250/1.0 (3.12) Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia7270/2.0 (03.22) Profile/MIDP-2.0 Configuration/CLDC-1.1
Nokia8310/1.0 (06.20) (Google WAP Proxy/1.0)
NokiaN-Gage/1.0 SymbianOS/6.1 Series60/1.2 Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
NOKIA-RH-17/V F100V1401.nep.0 UP.Browser/4.1.26l1.c.1 UP.Link/4.2.1.2 (Google WAP Proxy/1.0)
NOKIA-RH-27/V H100V1100.nep.0 UP.Browser/6.2.2.1.c.1.102 (GUI) MMP/2.0 (Google WAP Proxy/1.0)
Alcatel-TH3/1.0 UP.Browser/6.2.ALCATEL MMP/1.0
Alcatel-TH4/1.0 UP.Browser/6.2.ALCATEL MMP/1.0 (Google WAP Proxy/1.0)
Java/1.4.2
Java/1.4.2_04
Java/1.4.2_06
BlackBerry7230/3.7.1
BlackBerry7290/3.8.0 UP.Link/1.1
MOT-A-1C/00.06 UP.Browser/7.0.0.2.257 (GUI) MMP/2.0 UP.Link/5.1.2.12 (Google WAP Proxy/1.0)
MOT-A-1F/00.04 UP.Browser/4.1.27a1 UP.Link/5.1.2.12 (Google WAP Proxy/1.0)
MOT-A-2B/00.03 UP.Browser/4.1.27a1 UP.Link/5.1.2.12 (Google WAP Proxy/1.0)
MOT-C357/1.0 UP.Browser 6.2.2.1 (GUI) MMP-2.0 /M4 3.02 (Google WAP Proxy/1.0)
MOT-E398/0E.20.96R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Link/1.1 (Google WAP Proxy/1.0)
MOT-V180ENS/0B.D1.32R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Link/1.1 (Google WAP Proxy/1.0)
MOT-V300/0B.09.38R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
MOT-V525M/0B.09.38R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
MOT-V525M/0B.09.38R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Link/1.1 (Google WAP Proxy/1.0)
MOT-c350M/G_09.04.37R MIB/2.0 (Google WAP Proxy/1.0)
Motorola-E365 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0 (Google WAP Proxy/1.0)
NOKIA-RH-17/V F100V1401.nep.0 UP.Browser/4.1.26l1.c.1 UP.Link/4.2.1.2 (Google WAP Proxy/1.0)
NOKIA-RH-27/V H100V1100.nep.0 UP.Browser/6.2.2.1.c.1.102 (GUI) MMP/2.0 (Google WAP Proxy/1.0)
Opera/4.02 (Windows 98; U) [en]
Opera/7.11 (Linux 2.4.2 i386; U) [en]
Opera/7.11 (Linux 2.4.2 i386; U) [en]
Opera/7.11 (Windows 98; U) [en]
Opera/7.11 (Windows NT 5.0; U) [en]
Opera/7.21 (Linux 2.4.2 i386; U) [en]
Opera/7.21 (Windows 98; U)
Opera/7.21 (Windows NT 5.1; U) [fr]
Opera/7.23 (Windows ME; U) [es-ES]
Opera/7.23 (Windows NT 5.0; U) [de]
Opera/7.23 (Windows NT 5.1; U) [fr]
Opera/7.50 (Windows ME; U) [en]
Opera/7.50 (Windows NT 5.1; U) [en]
Opera/7.51 (Windows NT 5.1; U) [en]
Opera/7.53 (Windows NT 5.1; U) [en]
Opera/7.54 (Windows 98; U) [de]
Opera/7.54 (Windows 98; U) [es-ES]
Opera/7.54 (Windows ME; U) [en]
Opera/7.54 (Windows NT 5.0; U) [en]
Opera/7.54 (Windows NT 5.0; U) [fr]
Opera/7.54 (Windows NT 5.0; U) [nb]
Opera/7.54 (Windows NT 5.1; U) [Fr]
Opera/7.54 (Windows NT 5.1; U) [ca]
Opera/7.54 (Windows NT 5.1; U) [cs]
Opera/7.54 (Windows NT 5.1; U) [fr]
Opera/7.54 (Windows NT 5.1; U) [sk]
Opera/7.54 (X11; Linux i686; U) [de]
Opera/7.54 (X11; Linux i686; U) [en]
Opera/7.54u1 (Windows NT 5.1; U) [en]
Opera/8.0 (Windows 98; U; en)
Opera/8.0 (Windows NT 5.1; U; cs)
Opera/8.0 (Windows NT 5.1; U; de)
Opera/8.0 (X11; Linux i686; U; en)
Opera/8.00 (Windows NT 5.1; U; en)
Opera/8.00 (Windows NT 5.1; U; ru)
Opera/8.5 (X11; Linux i386; U; en)
QC-2325/1.0.26 UP.Browser/4.1.25i (Google WAP Proxy/1.0)
QC07 UP.Browser/4.1.26l (Google WAP Proxy/1.0)
QC2135 UP.Browser/4.1.22b (Google WAP Proxy/1.0)
SAGEM-myV-55/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.6.d.3 (GUI) MMP/1.0
SAGEM-myX-2/1.0 UP.Browser/5.0.5.5 (GUI) (Google WAP Proxy/1.0)
SAGEM-myX-5-2T/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.6.d.4.102 (GUI) MMP/1.0 (Google WAP Proxy/1.0)
SAGEM-myX3-2/1.0 UP.Browser/6.1.0.6.1.c.4 (GUI) MMP/1.0 (Google WAP Proxy/1.0)
SAMSUNG-SGH-D500/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (Google WAP Proxy/1.0)
SAMSUNG-SGH-E800/1.0 UP.Browser/6.2.2.6 (GUI) MMP/1.0
SAMSUNG-SGH-E800/1.0 UP.Browser/6.2.2.6 (GUI) MMP/1.0 (Google WAP Proxy/1.0)
SAMSUNG-SGH-X600A/K3 UP.Browser/6.1.0.6 (GUI) MMP/1.0
SEC-SGHE710/1.0 (Google WAP Proxy/1.0)
SEC-SGHP408*MzUyNTY4ODk2ODkyMjg4 (Google WAP Proxy/1.0)
SIE-C65/12 UP.Browser/7.0.0.1.c.3 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
SIE-M55/07 UP.Browser/6.1.0.5.c.5 (GUI) MMP/1.0 (Google WAP Proxy/1.0)
SIE-S65/12 UP.Browser/7.0.0.1.c.3 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 (Google WAP Proxy/1.0)
SonyEricssonK700i/R2AA SEMC-Browser/4.0.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 (Google WAP Proxy/1.0)
SonyEricssonK700i/R2AE SEMC-Browser/4.0.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 (Google WAP Proxy/1.0)
SonyEricssonP800/R101 Profile/MIDP-1.0 Configuration/CLDC-1.0
SonyEricssonP900/R101 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Link/6.3.0.0.0
SonyEricssonP900/R102 Profile/MIDP-2.0 Configuration/CLDC-1.0
SonyEricssonP900/R102 Profile/MIDP-2.0 Configuration/CLDC-1.0 Rev/MR4
SonyEricssonT226/R101 UP.Link/1.1 (Google WAP Proxy/1.0)
SonyEricssonT610/R301 Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
SonyEricssonT610/R401 Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
SonyEricssonT630/R401 Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
SonyEricssonT630/R601 Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)

Mais si tu nous disais un peu ce que tu cherches à faire exactement, on pourrait peut-être t'aider un peu plus... L'OS n'est pas vraiment l'info la plus intéressante en général...

Jacques.
 
WRInaute occasionnel
Eh bien, c'est très simple. Mon site possède une partie Mobile. Hors cette partie mobile semble mieux indexée dans GG que la partie standard. Du coup, j'ai un bon nombre de visiteur qui surfe sur cette partie avec de bon vieux PC ou autres stations sans se rendre compte qu'il se trouve dans la partie mobile de mon site.
Au début, je pensais faire une redirection en PHP en testant l'OS et en changeant l'URL mais je crains que ça ne foute la grouille avec les robots qui du coup seraient automatiquement redirigés vers le site standard...

Je pense me contenter d'un message en bas de page qui précise que l'on est sur la partie mobile et mettre un lien de retour vers le site standard. Ce message, je ne le fais apparaitre que si le visiteur n'est pas sur mobile.

Sinon, pendant que j'y suis, comment faire en sorte que mes pages mobiles soit reconnues comme telles par les moteurs ?

J'ai placé ça avant le <head> :

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Théoriquement, ça devrait suffire non ?
 
WRInaute accro
John Smith a dit:
Eh bien, c'est très simple. Mon site possède une partie Mobile. Hors cette partie mobile semble mieux indexée dans GG que la partie standard. Du coup, j'ai un bon nombre de visiteur qui surfe sur cette partie avec de bon vieux PC ou autres stations sans se rendre compte qu'il se trouve dans la partie mobile de mon site.
Au début, je pensais faire une redirection en PHP en testant l'OS et en changeant l'URL mais je crains que ça ne foute la grouille avec les robots qui du coup seraient automatiquement redirigés vers le site standard...

C'est le genre de trucs pas forcément facile... Il y a beaucoup de sites qui font l'inverse (renvoient sur la version mobile si tu arrives sur la partie "normale"), mais c'est quelquefois très agaçant: si tu utilises un browser un peu sympa (genre Opera) sur un Pocket PC sympa (genre un HTC X7500) et que tu es "forcé" sur la version mobile (souvent très très simplifiée), c'est souvent lourd.

Et effectivement la détection n'est pas forcément triviale: tu peux te baser sur des Useragents (mais comme déjà dit, c'est carrément galère), sur les IPs des passerelles mobiles (mais pour avoir quelque chose d'exhaustif c'est pas facile non plus). Il y a peut-être des choses à faire au niveau Javascript et/ou CSS? En plus dans ce sens-là ça risque d'être encore plus difficile d'obtenir un résultat correct.

John Smith a dit:
Je pense me contenter d'un message en bas de page qui précise que l'on est sur la partie mobile et mettre un lien de retour vers le site standard. Ce message, je ne le fais apparaitre que si le visiteur n'est pas sur mobile.

Il n'y a pas un truc au niveau CSS qui permet de gérer ça?

John Smith a dit:
Sinon, pendant que j'y suis, comment faire en sorte que mes pages mobiles soit reconnues comme telles par les moteurs ?

J'ai placé ça avant le <head> :

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Théoriquement, ça devrait suffire non ?

Honnêtement, j'ai tendance à penser que la plupart des moteurs ignorent sauvagement cette information, mais je peux me tromper...

Jacques.
 
WRInaute discret
jcaron a dit:
Il y a peut-être des choses à faire au niveau Javascript et/ou CSS?
En Javascript: on pourrait envisager de tester la largeur en pixels du viewport (zone de visualisation du navigateur) ou de body.
En CSS: creuser du côté du média handheld et des media queries.
 
Discussions similaires
Haut