lois: browserversion ermitteln

hi,

gibt es irgendeine standardmethode wie man die browserversion + betriebssystem ermitteln kann?
ist das format der $ENV{'HTTP_USER_AGENT'} überhaubt standardisiert?

ich hab im internet nur das gefunden:

# Browser & Version ermitteln
        for (@$line[9]) {
                $Browser =         /MSIE 2/i                && "Internet Explorer 2.x"
                        ||                /MSIE 3/i                && "Internet Explorer 3.x"
                        ||                /MSIE 4/i                && "Internet Explorer 4.x"
                        ||                /MSIE 5/i                && "Internet Explorer 5.x"
                        ||                /MSIE 6/i                && "Internet Explorer 6.x"
                        ||                /MSIE/i                        && "Internet Explorer x.x"
                        ||                /Netscape6/i        && "Netscape Navigator 6.x"
                        ||                /Mozilla/2/i        && "Netscape Navigator 2.x"
                        ||                /Mozilla/3/i        && "Netscape Navigator 3.x"
                        ||                /Mozilla/4/i        && "Netscape Navigator 4.x"
                        ||                /Mozilla/5/i        && "Netscape Navigator 6.x"
                        ||                /Netscape/i            && "Netscape Navigator x.x"
                        ||                                                   "unbekannt";
        }

# Betriebssystem & Version ermitteln
        for (@$line[9]) {
                $os =  /Mac/i               && "Macintosh"
                        || /Win(dows )?3/i      && "Windows 3.x"
                        || /Win(dows )?95/i     && "Windows 95"
                        || /Win(dows )?98/i     && "Windows 98"
                        || /Win(dows )?NT 3/i   && "Windows NT 3.x"
                        || /Win(dows )?NT 4/i   && "Windows NT 4.x"
                        || /Win(dows )?NT 5.0/i && "Windows 2000"
                        || /Win(dows )?NT 5.1/i && "Windows XP"
                        || /Win(dows )?NT/i     && "Windows NT x.x"
                        || /Linux/i             && "Linux"
                        || /HP-UX/i             && "HP-UX"
                        || /SunOS/i             && "SunOS"
                        ||                         "unbekannt";
        }

gibt es da keine allgemeine lösung?

lg, lois.

  1. Hi,

    gibt es irgendeine standardmethode wie man die browserversion + betriebssystem ermitteln kann?

    Nein.

    ist das format der $ENV{'HTTP_USER_AGENT'} überhaubt standardisiert?

    Nein.

    Verlasse dich niemals darauf, als was sich ein Browser ausgibt, sondern auf das, was er kann. Mit dem UserAgent zu arbeiten, ergibt bestenfalls einen Näherungswert.

    LG Roland

    --
    Ich war für das Thema (BARRIEREFREIHEIT) im Forum. Es hat nicht sollen sein.
    ss:| zu:} ls:} fo:} de:> va:} ch:| sh:) n4:& rl:| br:< js:{ ie:{ fl:{ mo:|
    http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
  2. Hallo,

    ist das format der $ENV{'HTTP_USER_AGENT'} überhaubt standardisiert?

    Wie Orlando schon gesagt hat, da kann jeder Browser übermitteln, was er gerne möchte. Oder er übermittelt gar nichts. Oder ein Proxy überschreibt den Wert des Browsers, ...

    Wenn du einen der aktuelleren Browser (IE, Mozilla, NS4, Opera) erkennen willst, dann kannst du nur über die Unterstützungen der Scripttechniken gehen. Dazu findest du sicher genügend Beispiele.

    Serverseitig wirst du das nicht hinbekommen.

    Viele Grüße,

    Stefan

  3. use Mosche;

    gibt es irgendeine standardmethode wie man die browserversion + betriebssystem ermitteln kann?
    gibt es da keine allgemeine lösung?

    Die gibt es nicht, weil man den UserAgent String bei fast allen Browsern direkt manipulieren kann und die Informationen, die sich dahinter verbergen, größtenteils folgendermaßen lauten:

    Das ist ein User mit diesem Browser, oder er benutzt einen anderen.

    (Ich bin Tautologe, ich weiß :-))

    use Tschoe qw(Matti);

    --
      Anyone who quotes me in their sig is an idiot. -- Rusty Russell.