1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

PHP - Land und Betriebssystem des Besuchers auslesen

Discussion in 'Web-Know-how für die Homepage' started by pc4ever2use, Jun 8, 2007.

Thread Status:
Not open for further replies.
  1. Hey

    kann mir wer sagen wie ich sowas mit PHP hinbekomm, ich möchte das gerne selber programmieren!

    [​IMG]

    also:

    IP: echo $_SERVER[REMOTE_ADDR];
    Browser und Betriebssystem: echo $_SERVER[HTTP_USER_AGENT];
    Herkunftsland: ???

    Bitte kommt mir nicht mit $_SERVER[HTTP_ACCEPT_LANGUAGE] denn das gibt keine auskunft über das Land sondern nur über die im Browser eingestellte Sprache!!


    :danke: schonmal im Voraus!
     
  2. PowerMan74

    PowerMan74 Byte

    Ich galube die machen da eine abfrage der Ripe-Datenbank www.ripe.de. Da kannst du zu der IP den entsprechenden Provider ermitteln.
     
  3. ja und wie krig ich das land raus?
     
  4. PowerMan74

    PowerMan74 Byte

    Ermittle mal testhalber deine IP und gib die im WhoIs bei www.ripe.de ein. Dann werden dir sämtliche Daten zu dem Provider ausgegeben über den du ins Netz gehst.
    Ich habe mal schnell ne PHP-Funktion geschieben. Mit der Funktion kannst du eine Ripe-Abfrage machen. Dabei wird die Gesamte Ausgabe von Ripe von der Funktion als Array zuückgeben. Das Array musst du dir dann selber auseinanderpopeln.
    PHP:
    function LoadRipe($search_ip) {
        
    $fp fsockopen ("whois.ripe.net"43) or die ("Ripe-Connect-Error!");
        
    fputs($fp$search_ip."\n");
        while (!
    feof($fp)) {
            
    $output[] = fgets($fp2048);
        }
        
    fclose($fp);
        return 
    $output;
    }


    $test LoadRipe("85.14.233.91");
     
  5. kalweit

    kalweit Hüter der Glaskugel

    Cool, wer soll bei der Portnummer antworten?
     
  6. lightdisc

    lightdisc Halbes Megabyte

    Also ich muss sagen bei mir funktionier es... :confused:
     
  7. chris47803

    chris47803 Byte

    Code:
    // IP Adresse ermitteln
    $ip_addr = getenv('REMOTE_ADDR');
    
    //Betriebssystem ermitteln
    $agent=$_SERVER['HTTP_USER_AGENT'];
    $os   ="Unbekannt";
    
    if   (strstr($agent, "Windows 98"))      $os="Windows 98";
    elseif (strstr($agent, "NT 4.0"))        $os="Windows NT ";
    elseif (strstr($agent, "NT 5.1"))        $os="Windows XP";
    elseif (strstr($agent, "Mac"))           $os="Mac OS";
    elseif (strstr($agent, "Linux"))         $os="Linux";
    elseif (strstr($agent, "Unix"))          $os="Unix";
    elseif (strstr($agent, "NT 6.0"))        $os="Windows Vista";
    
    //Browser ermitteln
    if (strpos($agent, "Mozilla/5.0")) {
    $browser = "Mozilla";
    }
    if (strpos($agent, "Mozilla/4")) {
    $browser = "Netscape";
    }
    if (strpos($agent, "Mozilla/3")) {
    $browser = "Netscape";
    }
    if (strpos($agent, "Firefox") || strpos($agent, "Firebird")) {
    $browser = "Firefox";
    }
    if (strpos($agent, "MSIE 7.0")) {
    $browser = "IE 7";
    }
    if (strpos($agent, "MSIE 6.0")) {
    $browser = "IE 6";
    }
    if (strpos($agent, "MSIE 5.0")) {
    $browser = "IE 5";
    }
    if (strpos($agent, "Netscape")) {
    $browser = "Netscape";
    }
    if (strpos($agent, "Camino")) {
    $browser = "Camino";
    }
    if (strpos($agent, "Galeon")) {
    $browser = "Galeon";
    }
    if (strpos($agent, "Konqueror")) {
    $browser = "Konqueror";
    }
    if (strpos($agent, "Safari")) {
    $browser = "Safari";
    }
    if (strpos($agent, "OmniWeb")) {
    $browser = "OmniWeb";
    }
    if (strpos($agent, "Opera")) {
    $browser = "Opera";
    }
    if (!isset($browser)) {
    $browser = "Unbekannt";
    }
    
    //Ausgaben
    echo "<b>IP:</b> $ip_addr<br>";
    echo "<b>BS:</b> $os<br>";
    echo "<b>Browser:</b> $browser<br>";
    
    Das mit dem Land habe ich bisher nicht zuverlässig hinbekommen.

    Gruß, Chris
     
  8. lightdisc

    lightdisc Halbes Megabyte

    Also fürs Land hätte ich folgendes anzubieten:

    PHP:
    function LoadRipe($search_ip) { 
        
    $fp fsockopen ("whois.ripe.net"43) or die ("Ripe-Connect-Error!"); 
        
    fputs($fp$search_ip."\n"); 
        while (!
    feof($fp)) { 
            
    $output[] = fgets($fp2048); 
        } 
        
    fclose($fp); 
        return 
    $output

    $ip "12.12.12.12";
    $test LoadRipe($ip); 

    foreach(
    $test as $value){
    if(
    $ergebnis preg_match("/country/",$value)){
    echo 
    "".$value."<br>\n";
    }
    }
     
  9. chris47803

    chris47803 Byte

    Hallo!

    Die Ausgabe.......
    ............. finde ich nicht gerade befriedigend.

    Und ausserdem bin ich dann darauf angewiesen, das der externe Server immer bereit steht.

    Gruß, Chris
     
Thread Status:
Not open for further replies.

Share This Page