Aller au contenu

Problème $HTTP_USER_AGENT


Gribouille26

Sujets conseillés

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. :up:

Puis qu'aucun ne venaient avec IE. :huh:

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. :whistling:

Et là, je constate que ma visite est enregistrée avec Mozilla/4.0!!! :angry:

Ai-je fait une erreur? :(

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

D'accord, je comprend!  :D

Mais pourquoi, ça je ne comprend pas!  :(

Et Mozilla correspond à quoi?  :blush: 

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 :wacko:

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.

Lien vers le commentaire
Partager sur d’autres sites

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 :wacko:

Gecko : Moteur de rendu

20041108 : Date de la compilation

Firefox/1.0 : Navigateur

<{POST_SNAPBACK}>

Merci de cette explication! :up:

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? :whistling:

Lien vers le commentaire
Partager sur d’autres sites

Merci de cette explication!  :up:

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?  :whistling:

<{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.

Lien vers le commentaire
Partager sur d’autres sites

Que veux-tu dire par-là? :huh:

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"?

Lien vers le commentaire
Partager sur d’autres sites

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 :P

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]

:lol:

Lien vers le commentaire
Partager sur d’autres sites

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é par Dash
Lien vers le commentaire
Partager sur d’autres sites

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 :lol:

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 :wacko:

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" :lol:

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. :nono:

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

Sauf que pour compliquer un peu les choses, Mozilla 1.7.3 ne contient pas de Mozilla/1.7.3 :lol:

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 :wacko:

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" :lol:

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. :nono:

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.

Lien vers le commentaire
Partager sur d’autres sites

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. :P

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]

:yoot:

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 :rolleyes:

Non, vraiment, détecter le navigateur est impossible et beaucoup trop incertain :whistling:

Il ne faut vraiment pas l'utiliser :nono:

Lien vers le commentaire
Partager sur d’autres sites

Pour les Gecko, c'est vrai, j'avais oublié cette rafale :P

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.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Ouulala!!!

Vous m'avez bien embrouillée... :wacko:

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,...

Lien vers le commentaire
Partager sur d’autres sites

C'est pourtant simple :D

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...