Michael S.: Land eines Webseitenbesuchers ermitteln

Hallo,

ich möchte gerne feststellen aus welchem Land eine Webseite aufgerufen wird. Zum einen möchte ich das statistisch auswerten, andererseits will ich damit bei einer Mehrsprachigen Seite beim Aufruf der Default-Seite möglicht eine passende Sprache auswählen.

Es muss keine 100% sichere Methode sein, eine Trefferquote >95% reicht mir aus. Es sollte eine serverseitige Methode sein, die sich mit PHP umsetzen lässt.

Gibt es da Möglichkeiten?

Gruss
Michael

  1. Moin!

    ich möchte gerne feststellen aus welchem Land eine Webseite aufgerufen wird. Zum einen möchte ich das statistisch auswerten, andererseits will ich damit bei einer Mehrsprachigen Seite beim Aufruf der Default-Seite möglicht eine passende Sprache auswählen.

    Das Merkmal "Land" bietet keine nutzbaren Informationen zur Frage, welche Sprache der Besucher spricht. Und das aus zwei Gründen:

    1. Ausländer
    2. Länder wie Belgien oder die Schweiz, in denen mehr als eine Sprache gesprochen wird.

    Es gibt einen Standardmechanismus in allen Browsern, mit dem der Browserbenutzer angeben kann, welche Sprache er bevorzugt. Diesen solltest du nutzen, um eine Vorauswahl der dargestellten Sprache anzuzeigen. Und dem Besucher natürlich noch die Möglichkeit lassen, diese Vorauswahl zu ändern.

    Was die Statistik angeht, müßtest du eine Datenbank finden, die alle IPs der Welt dem Land zuordnet, aus dem sie verwendet werden.

    Alternativ kannst du natürlich auch ganz platt vorgehen und einfach die TLD der zum Namen aufgelösten IP verwenden - solange du ".com" dann nicht einfach den USA zuschlägst, kriegst du zumindest eine bunte Grafik. Ganz aussagelos sind die TLDs dann nämlich doch nicht.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
      1. Länder wie Belgien oder die Schweiz, in denen mehr als eine Sprache gesprochen wird.

      Ja davon hab ich auch schon gehört, ich lebe in der Schweiz :P

      Es gibt einen Standardmechanismus in allen Browsern, mit dem der Browserbenutzer angeben kann, welche Sprache er bevorzugt. Diesen solltest du nutzen, um eine Vorauswahl der dargestellten Sprache anzuzeigen. Und dem Besucher natürlich noch die Möglichkeit lassen, diese Vorauswahl zu ändern.

      Kannst du mir bitte einen Hinweis geben, was das für ein Mechanismus ist und wie ich ihn nutzen kann? Ein gutes Stichwort nach dem ich suchen kann wäre schon hilfreich.
      Der Benutzer kann die Sprache jederzeit ändern, er muss nur auf ein Fähnchen in der Navigationsleiste klicken und er wird zur entsprechenden Seite in der Sprache geführt, die Sprache schleif ich ansonsten im Querystring mit. Wenn aber die Default Seite aufgerufen wird (http://www.domain.tld/), habe ich natürlich keine Ahnung welche  Sprache dem Benutzer denn angenehm wäre, es geht nur darum hier den Komfort zu Verbessern indem eben gleich die Startseite mit der "richtigen" Sprache kommmt.

      Was die Statistik angeht, müßtest du eine Datenbank finden, die alle IPs der Welt dem Land zuordnet, aus dem sie verwendet werden.
      Alternativ kannst du natürlich auch ganz platt vorgehen und einfach die TLD der zum Namen aufgelösten IP verwenden - solange du ".com" dann nicht einfach den USA zuschlägst, kriegst du zumindest eine bunte Grafik. Ganz aussagelos sind die TLDs dann nämlich doch nicht.

      Hm, ich experimentiere wohl mal mit gethostbyaddr(), mal sehen was ich damit anfangen kann. 100% genau muss es ja, wie gesagt, nicht sein.

      Gruss
      Michael

      1. Tach.

        Es gibt einen Standardmechanismus in allen Browsern, mit dem der Browserbenutzer angeben kann, welche Sprache er bevorzugt. Diesen solltest du nutzen, um eine Vorauswahl der dargestellten Sprache anzuzeigen. Und dem Besucher natürlich noch die Möglichkeit lassen, diese Vorauswahl zu ändern.

        Kannst du mir bitte einen Hinweis geben, was das für ein Mechanismus ist und wie ich ihn nutzen kann? Ein gutes Stichwort nach dem ich suchen kann wäre schon hilfreich.

        Das allgemeine Stichwort wäre "Content Negotiation", und bzgl. Sprachen ist der HTTP-Header Accept-Language ein guter Anfang.

        --
        Once is a mistake, twice is jazz.
      2. Hallo Michael,

        Es gibt einen Standardmechanismus in allen Browsern, mit dem der Browserbenutzer angeben kann, welche Sprache er bevorzugt.
        Kannst du mir bitte einen Hinweis geben, was das für ein Mechanismus ist und wie ich ihn nutzen kann?

        ich nehme an, Sven meint den HTTP-Header Accept-Language, den du in einem serverseitigen Script abfragen kannst. Er gibt dir die bevorzugte(n) Sprache(n) des Besuchers an, wenn's mehrere sind, sogar mit Rangfolge und Gewichtung.

        Der Benutzer kann die Sprache jederzeit ändern, er muss nur auf ein Fähnchen in der Navigationsleiste klicken ...

        Fähnchen stehen für Nationen, nicht für Sprachen. Da du selbst aus der Schweiz kommst, dürfte dir das doch präsent sein. Für die Sprachauswahl ist daher anstatt einer Flagge ein Textlink besser geeignet, der die Sprache (in der jeweiligen Sprache!) angibt, also z.B. "Deutsch", "English", "Français", "Nederlands", ...

        So long,
         Martin

        --
        Wer morgens zerknittert aufsteht, hat den ganzen Tag Gelegenheit, sich zu entfalten.
        1. Hallo Martin,

          ich nehme an, Sven meint den HTTP-Header Accept-Language, den du in einem serverseitigen Script abfragen kannst. Er gibt dir die bevorzugte(n) Sprache(n) des Besuchers an, wenn's mehrere sind, sogar mit Rangfolge und Gewichtung.

          Danke, das liefert mir genau was ich brauche. Ich muss wohl blind sein, der ist mir noch nie aufgefallen.

          Fähnchen stehen für Nationen, nicht für Sprachen. Da du selbst aus der Schweiz kommst, dürfte dir das doch präsent sein. Für die Sprachauswahl ist daher anstatt einer Flagge ein Textlink besser geeignet, der die Sprache (in der jeweiligen Sprache!) angibt, also z.B. "Deutsch", "English", "Français", "Nederlands", ...

          Da hast du Recht, aber es gibt zwei Punkte die für Fähnchen sprechen:

          • Sie brauchen weniger Platz (es sei denn du magst winzige Fonts...)
          • Der Kunde will es so

          Merci
          Michael

  2. Hi,

    ich möchte gerne feststellen aus welchem Land eine Webseite aufgerufen wird. Zum einen möchte ich das statistisch auswerten, andererseits will ich damit bei einer Mehrsprachigen Seite beim Aufruf der Default-Seite möglicht eine passende Sprache auswählen.

    Es muss keine 100% sichere Methode sein, eine Trefferquote >95% reicht mir aus. Es sollte eine serverseitige Methode sein, die sich mit PHP umsetzen lässt.

    Gibt es da Möglichkeiten?

    guck Dir das an.

    Gruß
    Reiner