Mailinglisten-Archive |
Hi, > wie krieg ich die IP eines Users, der in einer HTTPS - Verbindung mit > meinem Server steht raus ? Und wie kann ich die einem Land zuordnen? Das ist nicht ganz so einfach, wie man denkt. Ich hab es folgendermassen gemacht, auch wenn es noch nicht ganz zuverlässig funktioniert: ------------------------------------------------------------- preg_match("/([a-z0-9\-]+\.([a-z]+))$/", gethostbyaddr($_SERVER['REMOTE_ADDR']), $matches); list(, $userinfo_domain, $userinfo_tld) = $matches; if($userinfo_domain == 't-dialin.net') { define("USER_COUNTRY", "de"); } else if($userinfo_tld != '') { define("USER_COUNTRY", $userinfo_tld); } ------------------------------------------------------------- Wenn aus der Schweiz kommst und bei Tiscali bist, hast Du z.B. den Hostname 'adsl-130-112-basel2.tiscalinet.ch'. Daraus wird: $userinfo_domain = 'tiscalinet.ch'; $userinfo_tld = 'ch'; Hier geht es perfekt auf und Du kannst dann in der Konstante USER_COUNTRY den Wert 'ch' auslesen. Bei t-dialin.net ist es etwas schwieriger, weil dort 'NET' als Endung steht. Das hab ich hier als Spezialfall aufgeführt, wie Du siehst. Das kommt übrigens bei uns u.a. auf der Startseite zum Einsatz: http://tsunamihost.ch/ Dort steht nämlich "TsunamiHost (Schweiz|Deutschland|Österreich)". Das Land zu erkennen ist auch für die darauffolgenden Seiten wichtig, damit die Preise direkt in Euro umgerechnet werden. > Schankdön Schbittebön -daniel
php::bar PHP Wiki - Listenarchive