andreas: Browsererkennung - kurz testen

Beitrag lesen

Hallo!
Da das Thema doch recht schwierig zu sein scheint, und auch noch von der Server-Konfiguration abhängt, habe ich mich ein wenige nach Scripten umgeschaut, die mir den Browser, Version und OS ausgeben. Nun ja, was soll ich sagen ich habe 5 auf den ersten Blick vernünftige mal alle in einem Script zusammengefaßt, aber was soll ich sagen nicht 1 davon funktioniert 100% schon bei einfachen Sachen. (Soll mit PHP gemacht werden)
Ich habe die Scripte nummeriert, und das kpl. hochgeladen. Wäre nett wenn Ihr mal kurz gucken könntet in wieweit Eure Konfigurationen richtig oder falsch erkannt wurden.

der link: http://www.knet-systems.de/browser.php

Wens interssiert, hier noch der Code, oder hat vielleicht jemand was besseres was auch verlässlich funktioniert?

Vielen Dank im voraus!

Andreas

<?php
echo"<br>######################  1  ###################<br><br>";

//
// SourceForge: Breaking Down the Barriers to Open Source Development
// Copyright 1999-2000 (c) The SourceForge Crew
// http://sourceforge.net
//
// $Id: tim20000821.php3,v 1.2 2001/05/22 19:22:47 tim Exp $

unset ($BROWSER_AGENT);
unset ($BROWSER_VER);
unset ($BROWSER_PLATFORM);

function browser_get_agent () {
    global $BROWSER_AGENT;
    return $BROWSER_AGENT;
}

function browser_get_version() {
    global $BROWSER_VER;
    return $BROWSER_VER;
}

function browser_get_platform() {
    global $BROWSER_PLATFORM;
    return $BROWSER_PLATFORM;
}

function browser_is_mac() {
    if (browser_get_platform()=='Mac') {
        return true;
    } else {
        return false;
    }
}

function browser_is_windows() {
    if (browser_get_platform()=='Win') {
        return true;
    } else {
        return false;
    }
}

function browser_is_ie() {
    if (browser_get_agent()=='IE') {
        return true;
    } else {
        return false;
    }
}

function browser_is_netscape() {
    if (browser_get_agent()=='MOZILLA') {
        return true;
    } else {
        return false;
    }
}

/*
    Determine browser and version
*/

if (ereg( 'MSIE ([0-9].[0-9]{1,2})',$HTTP_USER_AGENT,$log_version)) {
    $BROWSER_VER=$log_version[1];
    $BROWSER_AGENT='IE';
} elseif (ereg( 'Opera ([0-9].[0-9]{1,2})',$HTTP_USER_AGENT,$log_version))
{
    $BROWSER_VER=$log_version[1];
    $BROWSER_AGENT='OPERA';
} elseif (ereg(
'Mozilla/([0-9].[0-9]{1,2})',$HTTP_USER_AGENT,$log_version)) {
    $BROWSER_VER=$log_version[1];
    $BROWSER_AGENT='MOZILLA';
} else {
    $BROWSER_VER=0;
    $BROWSER_AGENT='OTHER';
}

/*
    Determine platform
*/

if (strstr($HTTP_USER_AGENT,'Win')) {
    $BROWSER_PLATFORM='Win';
} else if (strstr($HTTP_USER_AGENT,'Mac')) {
    $BROWSER_PLATFORM='Mac';
} else if (strstr($HTTP_USER_AGENT,'Linux')) {
    $BROWSER_PLATFORM='Linux';
} else if (strstr($HTTP_USER_AGENT,'Unix')) {
    $BROWSER_PLATFORM='Unix';
} else {
    $BROWSER_PLATFORM='Other';
}

/*
//debug code
echo "\n\nAgent: $HTTP_USER_AGENT"."";
echo "\nIE: ".browser_is_ie()."";
echo "\nVersion: ".browser_get_version()."";
echo "\nMac: ".browser_is_mac()."";
echo "\nWindows: ".browser_is_windows()."";
echo "\nPlatform: ".browser_get_platform()."";
echo "\nAgent: ".browser_get_agent()."";
*/

echo "Plattform : $BROWSER_PLATFORM<br>";
echo "Agent : $BROWSER_AGENT<br>";
echo "Ver : $BROWSER_VER<br>";

echo"<br>######################  2  ###################<br><br>";

if((ereg("Nav", getenv("HTTP_USER_AGENT"))) ||
(ereg("Gold", getenv("HTTP_USER_AGENT"))) ||
(ereg("X11", getenv("HTTP_USER_AGENT"))) ||
(ereg("Mozilla", getenv("HTTP_USER_AGENT"))) ||
(ereg("Netscape", getenv("HTTP_USER_AGENT"))) AND
(!ereg("MSIE", getenv("HTTP_USER_AGENT")))) $browser =
"Netscape";
elseif(ereg("MSIE", getenv("HTTP_USER_AGENT")))
$browser = "MSIE";
else $browser = "Other";
echo "Browser: $browser<br>";

echo"<br>######################  3  ###################<br><br>";

$browser = get_browser();
echo "Browser: ";
echo $browser->browser;
echo "<br>";

echo"<br>######################  4  ###################<br><br>";

$UA= getenv('HTTP_USER_AGENT');
 $UA=eregi_replace("[[a-z]{2,}]", "*", $UA);
 $array=get_Browser($UA);
 while (list ($key, $value) = each ($array))
 {
     echo ("<b>$key:</b> $value\n<br>");
 }

$array=get_Browser('Netscape 4.0');
 while (list ($key, $value) = each ($array))
 {
     echo ("<b>$key:</b> $value\n<br>");
 }

echo"<br>######################  5  ###################<br><br>";

global $HTTP_USER_AGENT, $BName, $BVersion, $BPlatform;
function detect_browser()
{
global $HTTP_USER_AGENT, $BName, $BVersion, $BPlatform;

// Browser
if(eregi("(opera)
([0-9]{1,2}.[0-9]{1,3}){0,1}",$HTTP_USER_AGENT,$match) ||
eregi("(opera/)([0-9]{1,2}.[0-9]{1,3}){0,1}",$HTTP_USER_AGENT,$match))
{
 $BName = "Opera"; $BVersion=$match[2];
}
elseif(eregi("(konqueror)/([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match))
{
 $BName = "Konqueror"; $BVersion=$match[2];
}
elseif(eregi("(lynx)/([0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2})",$HTTP_USER_AGENT,$match))
{
 $BName = "Lynx "; $BVersion=$match[2];
}
elseif(eregi("(links)
(([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match))
{
 $BName = "Links "; $BVersion=$match[2];
}
elseif(eregi("(msie)
([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match))
{
 $BName = "MSIE "; $BVersion=$match[2];
}
elseif(eregi("(netscape6)/(6.[0-9]{1,3})",$HTTP_USER_AGENT,$match))
{
 $BName = "Netscape "; $BVersion=$match[2];
}
elseif(eregi("mozilla/5",$HTTP_USER_AGENT))
{
 $BName = "Netscape"; $BVersion="Unknown";
}
elseif(eregi("(mozilla)/([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match))
{
 $BName = "Netscape "; $BVersion=$match[2];
}
elseif(eregi("w3m",$HTTP_USER_AGENT))
{
 $BName = "w3m"; $BVersion="Unknown";
}
else{$BName = "Unknown"; $BVersion="Unknown";}

// System
if(eregi("linux",$HTTP_USER_AGENT))
{
 $BPlatform = "Linux";
}
elseif(eregi("win32",$HTTP_USER_AGENT))
{
 $BPlatform = "Windows";
}
elseif((eregi("(win)([0-9]{2})",$HTTP_USER_AGENT,$match)) ||
(eregi("(windows) ([0-9]{2})",$HTTP_USER_AGENT,$match)))
{
 $BPlatform = "Windows $match[2]";
}
elseif(eregi("(winnt)([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match))
{
 $BPlatform = "Windows NT $match[2]";
}
elseif(eregi("(windows nt)(
){0,1}([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match))
{
 $BPlatform = "Windows NT $match[3]";
}
elseif(eregi("mac",$HTTP_USER_AGENT))
{
 $BPlatform = "Macintosh";
}
elseif(eregi("(sunos)
([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match))
{
 $BPlatform = "SunOS $match[2]";
}
elseif(eregi("(beos)
r([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match))
{
 $BPlatform = "BeOS $match[2]";
}
elseif(eregi("freebsd",$HTTP_USER_AGENT))
{
 $BPlatform = "FreeBSD";
}
elseif(eregi("openbsd",$HTTP_USER_AGENT))
{
 $BPlatform = "OpenBSD";
}
elseif(eregi("irix",$HTTP_USER_AGENT))
{
 $BPlatform = "IRIX";
}
elseif(eregi("os/2",$HTTP_USER_AGENT))
{
 $BPlatform = "OS/2";
}
elseif(eregi("plan9",$HTTP_USER_AGENT))
{
 $BPlatform = "Plan9";
}
elseif(eregi("unix",$HTTP_USER_AGENT) ||
eregi("hp-ux",$HTTP_USER_AGENT))
{
 $BPlatform = "Unix";
}
elseif(eregi("osf",$HTTP_USER_AGENT))
{
 $BPlatform = "OSF";
}
else{$BPlatform = "Unknown";}

#echo $HTTP_USER_AGENT."<br>";
echo "$BName<br>";
echo "$BVersion<br>";
echo "$BPlatform<br>";
}

echo detect_browser();

#########

$isns = stristr($HTTP_USER_AGENT, "Mozilla") &&
(!(stristr($HTTP_USER_AGENT, "compatible")));
?>