Mike: HTTP_USER_AGENT - Mozilla oder Netscape?

Guten Abend,

wenn ich in HTTP_USER_AGENT nach dem Muster

/rv:(\d.?)*) Gecko/\d{8,}\b/

..suche, kann ich dann davon ausgehen, dass das nur auf (_richtige_) Mozilla Browser passt, also jene, bei denen in der Titelleiste "Mozilla" steht.. ?  Oder kann mir hier auch zufällig ein Netscape Browser ins Netz gehen?

Danke.

  1. Hallo,

    Oder kann mir hier auch zufällig ein Netscape Browser ins Netz gehen?

    Netscape 6/7 basiert ja auf Mozilla. --> Er wird auch auf diese weise erkannt. Aber das willst Du vermutlich auch.

    Netscape 4 und ältere verwenden keinen Gecko folglich steht der auch niemals in HTTP_USER_AGENT.

    Natürlich kann es aber immer passieren, dass jemand da was anderes angegeben hat. Sollten aber nicht sehr viele Leute sein, die das tun.

    Grüße

    Daniel

    1. Hallo,

      Hallo

      Netscape 6/7 basiert ja auf Mozilla. --> Er wird auch auf diese weise erkannt. Aber das willst Du vermutlich auch.

      Nunja, ich wollte eigentlich nur Mozilla damit rausfischen und nicht Netscape. Nach diesem suche vorher mit

      /Netscape/   bzw.  /Mozilla4/5/

      ..das reicht wohl nicht, oder? ...

      Heir mal mein 2-Minuten Code ;-) in PHP:

      //------------------------------------------------------

      function GetBrowser($s) {
        $b = array(array("Konqueror","Konqueror"),
            array("Lynx","Lynx"),
          array("MSIE","MSIE"),
          array("Opera","Opera"),
          array("Netscape","Netscape"),
          array("Mozilla 4/5","Netscape"),
          array("rv:(\d.?)*) Gecko/\d{8,}\b","Mozilla")
          );

      if(strlen($s) < 4) { return -1; }

      for($i=0;$i<count($b);$i++) {
          if(preg_match("/".$b[$i][0]."/",$s)) {
         $browser = $b[$i][1]; return $browser;
         }
       }
        return -1;
        }

      //Aufruf mit z.B. :

      echo GetBrowser(getenv("HTTP_USER_AGENT"));

      //------------------------------------------------------

      Ja ja, ich weiss es ist stümperhaft... aber soll ja nix dolles werden.

      Natürlich kann es aber immer passieren, dass jemand da was anderes angegeben hat. Sollten aber nicht sehr viele Leute sein, die das tun.

      Das ist nicht so schlimm, mir gehts ja nur um das Prinzip..

      Grüße

      ebenfalls

      Daniel

      Mike

      1. Hi,

        /Netscape/   bzw.  /Mozilla4/5/

        was heißt /5/ ?? Der "wahre" Mozilla hat auch Mozilla/5 im User-Agent!

        function GetBrowser($s) {
          $b = array(array("Konqueror","Konqueror"),
              array("Lynx","Lynx"),
            array("MSIE","MSIE"),
            array("Opera","Opera"),

        Opera sollte VOR MSIE stehen, da Opera sich als MSIE ausgeben kann, und folglich MSIE in seinem UA-String hat. "Opera" ist aber immer im
        UA-String, egal wie er sich ausgibt!

        array("Netscape","Netscape"),
            array("Mozilla 4/5","Netscape"),

        was soll die 5 ? Und oben stand noch ein / am ende: /5/

        array("rv:(\d.?)*) Gecko/\d{8,}\b","Mozilla")
            );

        Netscape 4 würde ich ganz am schluss schreiben! also die letzten beiden Zeilen tauschen. Ist vielleicht zuverlässigerer.

        Aber ist gibt ja auch noch andere Gecko browser als Netscape und Mozilla! z.B. Phoenix oder K-Meleon, oder Chimera/Camino, Galeon...
        Diese kämen dann alle unter "Mozilla" bei deinem Skript!

        Gruß
        Christian

  2. Tach auch,

    Gecko

    Oder kann mir hier auch zufällig ein Netscape Browser ins Netz gehen?

    Und eventuell Phoenix, Chimera (oder wie immer die Version fuer Apple noch hiess) und diverse andere Browser die auf Gecko basieren.

    Gecko ist nur die "Rendering Engine", darauf koennen massenhaft Browser basieren. Und ob und was da immer User Agent string auftaucht weiss ich nicht.

    Gruss,
    Armin

    --
    Location: Swindon/Wiltshire/England/UK/Europe/Northern Hemisphere/Planet Earth/Solar System/Milky Way Galaxy/Universe
    http://www.ministryofpropaganda.co.uk/