$http_user_agent - Programmation
Marsh Posté le 15-01-2001 à 17:34:18
si tu veux reconnaitre en javascript, là c super exhaustif et super pratique aussi:::
function Is() {
ssvar agent = navigator.userAgent.toLowerCase();
ssthis.major = parseInt(navigator.appVersion);
ssthis.minor = parseFloat(navigator.appVersion);
ssthis.ns = ((agent.indexOf('mozilla'!=-1) && ((agent.indexOf('spoofer'==-1) && (agent.indexOf('compatible' == -1)));
ssthis.ns2 = (this.ns && (this.major == 3));
ssthis.ns3 = (this.ns && (this.major == 3));
ssthis.ns4b = (this.ns && (this.minor < 4.04));
ssthis.ns4 = (this.ns && (this.major >= 4));
ssthis.ie = (agent.indexOf("msie" ) != -1);
ssthis.ie3 = (this.ie && (this.major == 2));
ssthis.ie4 = (this.ie && (this.major >= 4));
ssthis.op3 = (agent.indexOf("opera" ) != -1);
ssthis.win = (agent.indexOf("win" )!=-1);
ssthis.mac = (agent.indexOf("mac" )!=-1);
ssthis.unix = (agent.indexOf("x11" )!=-1);
}
si tu veux des explications, bah tiens:
http://www.htmlguru.com/content/tu [...] index.html
section 2-environnement
Marsh Posté le 15-01-2001 à 17:51:21
bon
les USER AGENT c'est pas super cool a decodé car ca change sur toute les versions et Netscape est pas cool car il donne pas souvent l'OS
alors pour te faire une idée je te montre les differents Agent de Netscape que j'ai sur mon site (a partir de ma base de donnée de stats contenant 3700 entrées)
agent ------- browser -------- count(*)ss
Mozilla/3.01ss Netscape 3.01ss 1ss
Mozilla/4.0ss Netscape 4.0ss 1ss
Mozilla/4.03ss Netscape 4.0ss 2
Mozilla/4.04ss Netscape 4.0ss 3
Mozilla/4.05ss Netscape 4.0ss 2
Mozilla/4.06ss Netscape 4.0ss 2ss
Mozilla/4.07ss Netscape 4.0ss 5ss
Mozilla/4.08ss Netscape 4.0ss 8ss
Mozilla/4.5ss Netscape 4.5ss 307ss
Mozilla/4.5 (compatible; iCab Pre2.3; Macintosh; I; PPC)ss Netscape 4.5ss 1ss
Mozilla/4.5 [fr] (Macintosh; I; PPC)ss Netscape 4.5ss 16ss
Mozilla/4.5 [fr] (Macintosh; U; PPC)ss Netscape 4.5ss 1
Mozilla/4.5(Macintosh;I;PPC)ss Netscape 4.5ss 1
Mozilla/4.51ss Netscape 4.51ss 4
Mozilla/4.5[fr](Macintosh;I;PPC)ss Netscape 4.5ss 2
Mozilla/4.5[fr](Macintosh;U;PPC)ss Netscape 4.5ss 2
Mozilla/4.6ss Netscape 4.6ss 12
Mozilla/4.6 (Macintosh; I; PPC)ss Netscape 4.6ss 1
Mozilla/4.61ss Netscape 4.61ss 9
Mozilla/4.61 [fr] (OS/2; I)ss Netscape 4.61ss 1
Mozilla/4.7ss Netscape 4.7ss 59
Mozilla/4.7 (Macintosh; I; PPC)ss Netscape 4.7ss 1
Mozilla/4.7 (Macintosh; U; PPC)ss Netscape 4.7ss 1
Mozilla/4.7 [en] (X11; U; IRIX64 6.5 IP30)ss Netscape 4.6ss 1
Mozilla/4.71ss Netscape 4.71ss 6
Mozilla/4.72ss Netscape 4.7ss 31ss
Mozilla/4.73ss Netscape 4.7ss 16ss
Mozilla/4.73 [en] (Win95; U)ss Netscape 4.7ss 1ss
Mozilla/4.73C-CCK-MCDss Netscape 4.7ss 7ss
Mozilla/4.73C-{C-UDP;ss Netscape 4.7ss 1ssEdit Deletess
Mozilla/4.73[en](X11;U;SunOS5.6sun4u)ss Netscape 4.7ss 1ssEdit Deletess
Mozilla/4.74ss Netscape 4.7ss 27ssEdit Deletess
Mozilla/4.74 (Macintosh; U; PPC)ss Netscape 4.7ss 1ssEdit Deletess
Mozilla/4.74C-CCK-MCDss Netscape 4.7ss 1ssEdit Deletess
Mozilla/4.75ss Netscape 4.7ss 75ssEdit Deletess
Mozilla/4.75 (compatible; MSIE 5.1; MacPPC (compatible; OmniWeb/4.0-beta-8))ss Unknown (Mozilla/4.75 (compatible;ss 1ssEdit Deletess
Mozilla/4.75 (Macintosh; U; PPC)ss Netscape 4.7ss 2ssEdit Deletess
Mozilla/4.75 (Macintosh; U; PPC) WebWasher/2.1.1rcess Netscape 4.7ss 1ssEdit Deletess
Mozilla/4.75 [fr] (Win95; U)ss Netscape 4.7ss 1ssEdit Deletess
Mozilla/4.75C-CCK-MCDss Netscape 4.7ss 4ssEdit Deletess
Mozilla/4.75[fr](WinNT;U)ss Netscape 4.7ss 1ssEdit Deletess
Mozilla/4.76ss Netscape 4.7ss 166ssEdit Deletess
Mozilla/4.76 (Macintosh; U; PPC)ss Netscape 4.7ss 6ssEdit Deletess
Mozilla/4.76(Macintosh;U;PPC)ss Netscape 4.7ss 2ssEdit Deletess
Mozilla/4.76C-CCK-MCDss Netscape 4.7ss 7ssEdit Deletess
Mozilla/4.7C-CCK-MCDss Netscape 4.7ss 5ssEdit Deletess
Mozilla/4.7C-CCK-MCD{C-UDP;EBM-APPLE}(Macintosh;I;PPC)ss Netscape 4.7ss 1ssEdit Deletess
Mozilla/4.7[en](X11;I;SunOS5.6sun4u)ss Netscape 4.7ss 1ssEdit Deletess
Mozilla/4.7[fr](Win98;I)ss Netscape 4.7ss 3ssEdit Deletess
Mozilla/4.7[fr](WinNT;I)ss Netscape 4.7ss 6ssEdit Deletess
Mozilla/5.0 (Macintosh; N; PPC; en-US; m18) Gecko/20001108 Netscape6/6.0ss Unknown (Mozilla/5.0 (Macintosh; N;ss 7ssEdit Deletess
Mozilla/5.0 (Macintosh; N; PPC; fr-FR; m18) Gecko/20001108 Netscape6/6.0ss Unknown (Mozilla/5.0 (Macintosh; N;ss 9ssEdit Deletess
Mozilla/5.0 (Windows; U; WinNT4.0; en-US; m18) Gecko/20001108 Netscape6/6.0ss Netscape 4.0ss 1ssEdit Deletess
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; 0.7) Gecko/20010109ss Unknown (Mozilla/5.0 (Windows; U; Wss 1ssEdit Deletess
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; m18) Gecko/20001108 Netscape6/6.0ss Unknown (Mozilla/5.0 (Windows; U; Wss 1ssEdit Deletess
Mozilla/5.0 (Windows; U; Windows NT 5.0; fr-FR; m18) Gecko/20001106 Netscape6/6.0ss Unknown (Mozilla/5.0 (Windows; U; Wss 3ssEdit Deletess
Mozilla/5.0 (Windows; U; WinNT4.0; en-US; 0.7) Gecko/20010109ss Netscape 4.0ss 1ssEdit Deletess
Mozilla/5.0 (Windows; U; WinNT4.0; fr-FR; m18) Gecko/20001106 Netscape6/6.0ss Netscape 4.0ss 1ssEdit Deletess
Mozilla/5.0 (X11; U; Linux 2.2.14-5.0smp i686; en-US; 0.7) Gecko/20010105ss Netscape 4.5ss 1ssEdit Deletess
j'ai commencé a enlever les Edit Delete mais c'etait lourd a la fin
donc comme tu le vois, te base pas sur un U ou un I, ca ne reviens que tres peu, quand c'est Netscape ya que Mozilla (a par pour NS 6.0)
amuse-toi bien
Marsh Posté le 15-01-2001 à 18:06:39
tiens voilà un petit script que j'utilise sur mon site, je te le livre tel quel avec les reqûetes sql. Il marche pas mal et reconnaît la plupart des navigateurs et les OS courants mêmesi des fois il y a des pb avec Netscape qui dit pas tout !ss
// BEGIN BROWSER DETECTION
$Browser = "";
$OS = "";
$Browser_Name = strtok($HTTP_USER_AGENT,"/" );ss
$Browser_Version = strtok(" " );
ssif ($HTTP_USER_AGENT == "Mozilla/4.0" ) {
ss$Browser = "Netscape 4";
ss}
sselseif(ereg("MSIE", $HTTP_USER_AGENT)) { // INTERNET EXPLORER
ss$Browser_Name =ss"MSIE";ss
ss$Browser_Version = strtok("MSIE" );ss
ss$Browser_Version = strtok(" " );ss
ss$Browser_Version = strtok(";" );
ssssif ($Browser_Version < 3) {
ssss$Browser = "IE 2";
ssss}
ssssif ($Browser_Version < 4) {
ssss$Browser = "IE 3";
ssss}
sssselseif (($Browser_Version >= 4) && ($Browser_Version < 5)) {
ssss$Browser = "IE 4";
ssss}
sssselseif ($Browser_Version >= 5) {
ssss$Browser = "IE 5";
ssss}
ss}
sselseif (ereg("Opera", $HTTP_USER_AGENT)) { // OPERA
ss$Browser = "Opera";
ss}
sselseif ($Browser_Name == "Mozilla" ) { // NETSCAPE NAVIGATOR
ssssif ($Browser_Version < 3) {
ssss$Browser = "Netscape 2";
ssss}
sssselseif (($Browser_Version >= 3) && ($Browser_Version < 4)) {
ssss$Browser = "Netscape 3";
ssss}
sssselseif ($Browser_Version >= 4) {
ssss$Browser = "Netscape 4";
ssss}
ss}
sselseif (ereg("Lynx", $HTTP_USER_AGENT)) { // Lynx
ss$Browser = "Lynx";
ss}
sselseif (ereg("Konqueror", $HTTP_USER_AGENT)) { // Konqueror
ss$Browser = "Konqueror";
ss$OS = "Linux";
ss}
sselse { // AUTRES NAVIGATEURS
ss$Browser = "Unknown";
ssmysql_query("INSERT INTO Stats_Agents VALUES ('','$HTTP_USER_AGENT','Browser'" );
ss}
// END BROWSER DETECTION
// BEGIN OS DETECTION
if ($OS == "" ) {
ssif ((ereg("WinNT",$HTTP_USER_AGENT)) || (ereg("Windows NT",$HTTP_USER_AGENT))) { // WINDOWS NT
ssssif ((ereg("Windows NT 5",$HTTP_USER_AGENT)) || (ereg("WinNT 5",$HTTP_USER_AGENT))) {
ssss$OS = "Windows 2000";
ssss}
sssselse {
ssss$OS = "Windows NT";
ssss}
ss}
sselseif ((ereg("Win95",$HTTP_USER_AGENT)) || (ereg("Windows 95",$HTTP_USER_AGENT)) || (ereg("Win32",$HTTP_USER_AGENT))) { // WINDOWS 95
ssss$OS = "Windows 95";
ss}
sselseif ((ereg("Win98",$HTTP_USER_AGENT)) || (ereg("Windows 98",$HTTP_USER_AGENT))) { // WINDOWS 98
ssss$OS = "Windows 98";
ss}
sselseif (ereg("Windows 3",$HTTP_USER_AGENT)) { // WINDOWS 3.XX
ssss$OS = "Windows 3.XX";
ss}
sselseif (ereg("Mac", $HTTP_USER_AGENT)) { // MAC
ssss$OS = "Macintosh";
ss}
sselseif (ereg("Linux", $HTTP_USER_AGENT)) { // LINUX
ssss$OS = "Linux";
ss}
sselseif (ereg("FreeBSD", $HTTP_USER_AGENT)) { // FreeBSD
ssss$OS = "FreeBSD";
ss}
sselse {
ss$OS = "Unknown";
ssmysql_query("INSERT INTO Stats_Agents VALUES ('','$HTTP_USER_AGENT','OS'" );
ss}
}
// END OS DETECTION
mysql_query("UPDATE Stats_Browsers SET Count = Count+1 WHERE Browser = '$Browser'" );
mysql_query("UPDATE Stats_OS SET Count = Count+1 WHERE OS = '$OS'" );
Marsh Posté le 16-01-2001 à 16:59:36
wOOkie ?
tu pourrais me passer pas mal de valeurs renvoyées à partir de ta table ? (pas les 3700 quand même...)
Marsh Posté le 16-01-2001 à 17:42:02
envoie moi un mail qu'on en discute
je peux te filer ce que tu veux, ya pas de probleme
j'ai meme des tables avec BEAUCOUP plus de valeurs qui tournent depuis plus de 6 moisss ; )
Marsh Posté le 15-01-2001 à 17:26:39
Voilà, ce serait pour faire un morceau de code PHP servant à décoder $http_user_agent
Donc, je voulais savoir un truc : pour reconnaitre IE, pas de pb, il y a tjs MSIE dedans.
Par contre, c'est un peu plus compliqué pour NS, je crois que c'est lorsqu'il y a "I" ou "U" (d'après tous ceux que j'ai vu...)
Autrement, aucun pb pour Opéra et Konqueror...
Qu'est ce qu'il y a d'autre comme navigateurs un petit peu répandus ?