Gribouille26 Posté 21 Novembre 2004 Posté 21 Novembre 2004 Bonjour, J'ai un script php sur un de mes sites pour savoir d'où et avec quoi viennent les visiteurs. <?php$date = date("d/m/Y \à G.i:s", time());$fp=fopen("visitindex.txt","a"); fwrite($fp, "Index vu le $date par $REMOTE_ADDR\n avec $HTTP_USER_AGENT\n depuis $HTTP_REFERER\n"); fclose($fp);?> Je constatais que quaziment tout les visteurs venaient avec Mozilla. Puis qu'aucun ne venaient avec IE. Après plusieurs jours, ça m'a semblé bizarre de ne pas voir de IE, tout de même! Alors je suis allée moi-même visiter mon site avec IE. Et là, je constate que ma visite est enregistrée avec Mozilla/4.0!!! Ai-je fait une erreur?
Dan Posté 21 Novembre 2004 Posté 21 Novembre 2004 Salut Gribouille, Tous les IE reportent Mozilla 4.0, le plus souvent avec la chaîne "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" ou équivalente. Ce qui les différencie est le MSIE 6.0 Dan
Gribouille26 Posté 21 Novembre 2004 Auteur Posté 21 Novembre 2004 D'accord, je comprend! Mais pourquoi, ça je ne comprend pas! Et Mozilla correspond à quoi? Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.7.5) Gecko/20041107 Firefox/1.0 ?
Loupilo Posté 21 Novembre 2004 Posté 21 Novembre 2004 D'accord, je comprend! Mais pourquoi, ça je ne comprend pas! Et Mozilla correspond à quoi? Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.7.5) Gecko/20041107 Firefox/1.0 ? <{POST_SNAPBACK}> Décryptage d'un USER AGENT Linux (ici, le mien) : Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.7.5) Gecko/20041108 Firefox/1.0 X11 : Serveur graphique Linux i686 : Système fr-FR : Langue 1.7.5 : Ça je sais pas Gecko : Moteur de rendu 20041108 : Date de la compilation Firefox/1.0 : Navigateur Internet Explorer utilise Mozilla/4.0 et la famille Mozilla utilise Mozilla/5.0. Internet Explorer 3 utilisait Mozilla/2.0... Donc ça remonte à longtemps, l'utilisation de "Mozilla/xx.x" par IE. Donc pour savoir quel est le navigateur, il faut surtout que tu cherches un nom : IE6 ou Firefox/1.0, c'est explicite Mais il ne faut pas se limiter à Mozilla/4.0 ou Mozilla/5.0 si tu veux des infos précises, car Mozilla/4.0 est utilisé avec IE 4, 4.5, 5, 5.5 et 6 ; Mozilla/5.0 est utilisé avec toute la famille Mozilla (Firefox, Thunderbird, Mozilla Suite) et depuis pas mal de temps, je crois.
Gribouille26 Posté 21 Novembre 2004 Auteur Posté 21 Novembre 2004 Décryptage d'un USER AGENT Linux (ici, le mien) :Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.7.5) Gecko/20041108 Firefox/1.0 X11 : Serveur graphique Linux i686 : Système fr-FR : Langue 1.7.5 : Ça je sais pas Gecko : Moteur de rendu 20041108 : Date de la compilation Firefox/1.0 : Navigateur <{POST_SNAPBACK}> Merci de cette explication! Mais tu as oublié le U en seconde possition dans la paranthèse! Dans ton décriptage, il remplace MSIE 6.0 dans l'exemple IE de Dan. Ca serait donc ça qui définit Mozilla? A quoi correspond la date de la compilation? C'est celle du navigateur?
Loupilo Posté 21 Novembre 2004 Posté 21 Novembre 2004 Merci de cette explication! Mais tu as oublié le U en seconde possition dans la paranthèse! Dans ton décriptage, il remplace MSIE 6.0 dans l'exemple IE de Dan. Ca serait donc ça qui définit Mozilla? A quoi correspond la date de la compilation? C'est celle du navigateur? <{POST_SNAPBACK}> Le "U" ? Ah oui... Mais je ne sais pas à quoi il correspond. Ce n'est pas ça qui définit Mozilla, c'est la présence de "Firefox/1.0" (ou "Mozilla/1.7.3" s'il s'agit de Mozilla) ! Et ce qui définit MSIE, c'est la présence de... "MSIE" ! L'User Agent de Mozilla et celui d'IE ne sont pas construits pareil, on ne peut donc pas les comparer... Mais quand dans la chaine il y a "Firefox/xx.x" ou "Mozilla/xx.x" précédé de gecko, ça peut difficilement être IE. Inversement, quand il y a "MSIE 6.0" ça peut difficilement être du Mozilla La date de compilation, c'est la date à laquelle les sources du logiciel ont été transformées... en logiciel executable ! Ainsi, je peux conclure que mon Firefox 1.0 est le reflet de l'état du développement au 8 novembre. Loupilo.
Anonymus Posté 21 Novembre 2004 Posté 21 Novembre 2004 A noter qu'il est assez facile de modifier le HTTP_USER_AGENT, en php notamment.
Gribouille26 Posté 21 Novembre 2004 Auteur Posté 21 Novembre 2004 Que veux-tu dire par-là? Qu'un internaute le modifie pour qu'il apparaîsse faux sur mes stat'? Comme celui-là, peut-être: cmoi (compatible; MSIE; Windows; iOpus-I-M; FunWebProducts; FDM) Ou que moi, je change son "decriptage"?
Dash Posté 21 Novembre 2004 Posté 21 Novembre 2004 sans chercher tres loin, il existe des extensions comme "User Agent Switcher" ou "Browser Identification" qui permettent de faire passer un navigateur pour un autre (=>IE, Opera, NS, etc.), voire de s''inventer un nouveau user-agent Par exemple, au moment ou j'ecris voici les informations me concernant, que tu devrais retrouver dans les logs de sitooyatoo.free.fr : Webmaster-Hub/0.1 (Google OS 0.1; U;) [fr]
Gribouille26 Posté 21 Novembre 2004 Auteur Posté 21 Novembre 2004 Boff! Ca peut faire rire 5 minutes, mais je ne vois pas trop l'interêt!
Dash Posté 21 Novembre 2004 Posté 21 Novembre 2004 (modifié) il s'agissait d'un exemple futile. Mais objectivement il peut y avoir differents interets a manipuler l'identite d'un navigateur. Certains sont legitimes/necessaires, d'autres sont plus discutables. Ce qu'il faut retenir, comme le fait noter Anonymus, c'est que le 'user-agent' peut etre modifie. Facilement. Modifié 21 Novembre 2004 par Dash
Xavier Posté 21 Novembre 2004 Posté 21 Novembre 2004 Ce n'est pas ça qui définit Mozilla, c'est la présence de "Firefox/1.0" (ou "Mozilla/1.7.3" s'il s'agit de Mozilla) ! <{POST_SNAPBACK}> Sauf que pour compliquer un peu les choses, Mozilla 1.7.3 ne contient pas de Mozilla/1.7.3 Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.7.3) Gecko/20040910 Pas facile hein ? Pour le rv:1.7.5, c'est simplement la version de Gecko, qui dans Firefox 1.0 est la 1.7.5. Bien évidemment il n'y a pas de Mozilla 1.7.5, et il n'y a jamais eu de rv:1.7.4 Mais pourquoi IE contient-il un "Mozilla" dans son User-Agent ? Simplement pour se faire fournir les versions riches des sites. Eh oui, c'est connu que Mozilla est bien meilleur, sans ça IE n'aurait droit qu'à une version "seconde zone" Historiquement c'est exactement ça, mais ça remonte à la grande époque de Netscape (dont le nom de code était Mozilla et qui s'identifiait comme tel), au départ IE était obligé de s'identifier comme Mozilla/... car beaucoup de sites s'assuraient de n'envoyer leur "belle" version qu'à Netscape. Le UserAgent peut être modifié soit par un pare-feu prétendant garantir l'anonymat, soit par un proxy, soit par d'autres choses encore. Plus d'infos sur Mozilla.org : http://www.mozilla.org/build/revised-user-agent-strings.html
Loupilo Posté 21 Novembre 2004 Posté 21 Novembre 2004 Sauf que pour compliquer un peu les choses, Mozilla 1.7.3 ne contient pas de Mozilla/1.7.3 Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.7.3) Gecko/20040910 Pas facile hein ? Pour le rv:1.7.5, c'est simplement la version de Gecko, qui dans Firefox 1.0 est la 1.7.5. Bien évidemment il n'y a pas de Mozilla 1.7.5, et il n'y a jamais eu de rv:1.7.4 Mais pourquoi IE contient-il un "Mozilla" dans son User-Agent ? Simplement pour se faire fournir les versions riches des sites. Eh oui, c'est connu que Mozilla est bien meilleur, sans ça IE n'aurait droit qu'à une version "seconde zone" Historiquement c'est exactement ça, mais ça remonte à la grande époque de Netscape (dont le nom de code était Mozilla et qui s'identifiait comme tel), au départ IE était obligé de s'identifier comme Mozilla/... car beaucoup de sites s'assuraient de n'envoyer leur "belle" version qu'à Netscape. Le UserAgent peut être modifié soit par un pare-feu prétendant garantir l'anonymat, soit par un proxy, soit par d'autres choses encore. Plus d'infos sur Mozilla.org : http://www.mozilla.org/build/revised-user-agent-strings.html <{POST_SNAPBACK}> N'ayant pas Mozilla, je n'ai pas testé... Je pensais que ce serait logique ! Sinon, pour le User-Agent, il est extremement facile de le modifier... Je peux faire croire que je suis Google (ça peut servir) ou même IE, afin que les sites qui interdisent à l'accès à la famille Mozilla me laissent passer. Bon, donc on récapitule : Si l'UA contient Firefox, c'est Firefox, si il contient "Gecko" mais pas Firefox ni autre chose, c'est Mozilla, si il contient "MSIE", c'est Internet Explorer. Et dans tous les cas il contient "Mozilla" (c'est pareil partout je crois, du moins chez Netscape et AOL c'est comme ça). Loupilo.
Xavier Posté 25 Novembre 2004 Posté 25 Novembre 2004 Si l'UA contient Firefox, c'est Firefox,OK ! si il contient "Gecko" mais pas Firefox ni autre chose, c'est Mozilla,Ou Netscape 6/7, Many One, Beonex, Galeon, Epiphany, Slamandra, Sylera, K-meleon [...] etc. Et puis Safari (et Konqueror ?) s'identifie comme "Gecko-like" donc il faut chercher "Gecko/" si il contient "MSIE", c'est Internet Explorer. <{POST_SNAPBACK}> Oh que non !Opera peut avoir un UA du genre Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.54 [fr] Certains navigateurs peuvent être tentés de faire de même pour se faire passer pour IE, comme IE se faisait passer pour Netscape au début Non, vraiment, détecter le navigateur est impossible et beaucoup trop incertain Il ne faut vraiment pas l'utiliser
Loupilo Posté 25 Novembre 2004 Posté 25 Novembre 2004 Pour les Gecko, c'est vrai, j'avais oublié cette rafale Konqueror s'identifie : Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko) Enfin, tant qu'on y est, n'oublions pas Amaya : amaya/8.6 libwww/5.4.0 et Lynx : Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.7d Opera n'a cette UA que si l'utilisateur décide de le mettre... Par défaut, c'est : Opera/7.60 (X11; Linux i686; U) [fr] Mais on peut changer, et la, Opera prend l'UA que tu as donné, c'est à dire pour moi : Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686) Opera 7.60 [fr] Mais si on part dans l'optique que quand la chaine contient MSIE ça n'est pas forcement MSIE, on n'est pas sorti de l'auberge... Firefox peut aussi changer d'UA... Loupilo.
Stephane Posté 26 Novembre 2004 Posté 26 Novembre 2004 Pour être sûr de comptabiliser Opera, il suffit de faire le test de chaîne avant tous les autres. Un utilisateur d'Opera peut en effet changer son UA en un clic (et le fait très souvent pour passer sur certains sites). Mais le mot Opera est toujours présent dans la chaîne.
Gribouille26 Posté 26 Novembre 2004 Auteur Posté 26 Novembre 2004 Ouulala!!! Vous m'avez bien embrouillée... Ce que je retiens, c'est que c'est pas très sûr. Je regardais ces derniers jours, pour voir un peu. Et j'ai trouver des gens qui navigaient avec des noms "exotiques" ! Des Toto, des cmoi,...
Stephane Posté 26 Novembre 2004 Posté 26 Novembre 2004 C'est pourtant simple Il suffit de faire plusieurs tris successifs. - d'abord isoler les utilisateurs d'Opera quel que soit le browser pour lequel ils cherchent à de faire passer - ensuite, pour bien faire, les utilisateurs de WebTV qui affichent souvent un UA avec "compatible MSIE" - tous les autres UA avec MSIE dedans ont de grandes chances d'être de vrais utilisateurs d'IE - ensuite, reste plus qu'à faire le tri entre les membres de la grande famille Gecko
Gribouille26 Posté 26 Novembre 2004 Auteur Posté 26 Novembre 2004 Oui, effectivement, résumé ainsi, c'est plus clair! Mais comme tu le dis toi-même: "souvent", "de grandes chances", ... c'est pas très sûr... il faut y intégrer une marge d'erreur.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant