andreas: HTTP_USER_AGENT String "zerpflücken"!

Hi!
Ich überlege gerade ob es überhaupt Sinn hat dies zu tun. Wäre mir natürlich sehr lieb wenn das ginge, aber sind die denn alle so gleich, dass man die standardmäßig auseinander nehmen kann? Mal ein typischer:

Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Mich interessiert halt eigentlich nur der Browser und das OS(auch wenn da machen Browser lügen... ). Reicht das wenn ich mit explorde bei ";" trenne und den 2. und 3. Wert nehme? Habe ich dann verlässlich diese Daten von allen Usern, zumindest wie sie gesendet werden? ODer gibt es Konfigurationen, die den HTTP_USER_AGENT String anders aufbauen?

Wenn ich da nämlich testweise mal meinen Netscape anschaue, wird mir direkt wieder ganz anders:

Mozilla/4.51 [en] (WinNT; I)

Was gibt es da sonst noch für Varianten?

Gibt es vielleicht irgendwelche fertigen Funktionen... die das hinbekommen?

Viele Grüße
  Andreas

  1. Hallo,

    Mich interessiert halt eigentlich nur der Browser und das OS(auch wenn da machen Browser lügen... ). Reicht das wenn ich mit explorde bei ";" trenne und den 2. und 3. Wert nehme? Habe ich dann verlässlich diese Daten von allen Usern, zumindest wie sie gesendet werden? ODer gibt es Konfigurationen, die den HTTP_USER_AGENT String anders aufbauen?

    Wenn ich da nämlich testweise mal meinen Netscape anschaue, wird mir direkt wieder ganz anders:

    Mozilla/4.51 [en] (WinNT; I)

    Was gibt es da sonst noch für Varianten?

    Gibt es vielleicht irgendwelche fertigen Funktionen... die das hinbekommen?

    Es gibt etliche Stringfunktionen in PHP. Zum Abfragen, ob eine Teilzeichenkette in einer anderen Zeichenkette enthalten ist, reicht schon:

    $ua=getenv("HTTP_USER_AGENT");
    if(strpos($ua,"Opera")!="")
    {
      // Zeichenkette Opera gefunden
    }

    substr() ist eine weitere hilfreiche Funktion (mehr siehe PHP-Manual), wobei man nicht so viel in den UA hinein interpretieren sollte.

    MfG, Thomas

    1. Hi!

      $ua=getenv("HTTP_USER_AGENT");
      if(strpos($ua,"Opera")!="")
      {
        // Zeichenkette Opera gefunden
      }

      Das ist ja einer von der Sorte die sich gerne "tarnen":-)

      substr() ist eine weitere hilfreiche Funktion (mehr siehe PHP-Manual), wobei man nicht so viel in den UA hinein interpretieren sollte.

      Wie ich das von Hand´mache ist mir schon klar. Nur weiß ich halt nicgt, was es da noch so alles gibt bei den Browsern, ich kann ja nach "MSIE" suchen und wenn das nicht da auch auch kein Opera.. dann gehe ich davon aus es handelt sich um einen Netscape(was ja auch ein Mozilla sein kann, aber wahrscheinlich zu vernachlässigen).

      Ich habe im PHP-Manual wirklich superlange Diskussionen darum gelesen und viele Funktionen, aber ich weiß zum verrecken nicht mehr wo da! Ich habe gerade ne halbe Stunde alles durchsucht was mir einfiel, aber kein Ahnung wo das stand!

      Wieß das hier zufällig jemand?

      Viele Grüße
        Andreas

      1. Hallo,

        Das ist ja einer von der Sorte die sich gerne "tarnen":-)

        Der String "Opera" kommt auch dann noch mit (außer wenn der UA nicht komplett gefaked ist).

        Wie ich das von Hand´mache ist mir schon klar. Nur weiß ich halt nicgt, was es da noch so alles gibt bei den Browsern, ...

        Schau doch einfach mal in Deine Server-Logs. Bei mir steht da die gesamte Vielfalt drin, sogar nobody knows ;-).

        MfG, Thomas

        1. Nachtrag:

          Der String "Opera" kommt auch dann noch mit (außer wenn der UA nicht komplett gefaked ist).

          Das nicht war zuviel.

          MfG, Thomas