[Variablen] Remote_addr

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Variablen] Remote_addr

    hallo leuz,

    ich habe ein problem und ich hoffe ihr könnt mir helfen ...

    REMOTE_ADDR gibt die IP des durchschleifenden Apache Servers zurück und nicht die IP des Clients (oder dessen Proxy).

    mein script :

    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    session_start();
    require(
    "connect.inc.php");
    if (
    $_GET['hello'] == "script")
    {
    echo 
    'Hello Master!';
    die;
    }
    include 
    "config.inc.php";
    srand(microtime()*10000000);
    $rand rand(111);
    function 
    schreiben($datei,$mode) { 
       global 
    $REMOTE_ADDR
       
    $fp = @fopen($datei,$mode); 
       
    flock($fp,2); 
       
    fwrite($fp,$REMOTE_ADDR."|".time()."\n"); 
       
    flock($fp,3); 
       
    fclose($fp); 

    function 
    ip_sperre() { 
       global 
    $REMOTE_ADDR
       
    $reloadlogdatei "ips.txt"
       
    $anzahleintraege 10000;
       
    $zeitlimit 86400;
       if(!
    file_exists($reloadlogdatei)) { 
          
    $datei fopen($reloadlogdatei,"w+"); 
          
    fclose($datei); 
       } 
       
    $fp file($reloadlogdatei); 
       
    $size sizeof($fp); 
       if(
    $size >= $anzahleintraege){ 
          
    schreiben($reloadlogdatei,"w"); 
       } 
       else { 
          
    $ausgabe=false
          for (
    $i=0;$i<$size;$i++) { 
             
    $zeile explode("|",$fp[$i]); 
             if (
    $zeile[0] == $REMOTE_ADDR AND $zeile[1] > (time()-$zeitlimit)){ 
                
    // ip wird gefunden 
                
    $ausgabe true
             } 
          } 
          
    schreiben($reloadlogdatei,"a+"); 
       } 
       return 
    $ausgabe
    }
    $abfrage=mysql_query("select * from dieb_user_".$digit.
    WHERE `id` = '"
    .$_GET['id']."'");
    while (
    $row2 mysql_fetch_array($abfrage))
    {
    $names $row2["user"];
    $bekid $row2["bekid"];
    $punkte $row2["geld"];
    }
    (int) 
    $zahl $anzahl[$rand];

    $text '<B>"'.$names.'"</b> hat von Ihnen einen Punkt bekommen, DANKE';

    $geld1 '1';
    $geld2 '1';
    $geld3 '1';
    $geld4 '1';
    $geld5 '1';
    $geld6 '1';
    $geld7 '1';
    $geld8 '1';
    $geld9 '1';
    $geld10 '1';
    $geld11 '1';
    $anzahl = array(1=>"$geld1",
                  
    2=>"$geld2",
                  
    3=>"$geld3",
                  
    4=>"$geld4",
                  
    5=>"$geld5",
                  
    6=>"$geld6",
                  
    7=>"$geld7",
                  
    8=>"$geld8",
                  
    9=>"$geld9",
                  
    10=>"$geld10",
                  
    11=>"$geld11",
                  
    12=>"$geld12");
    if (
    ip_sperre()==false) { 
    $inhalt .= $text;
    $neuepunkte $punkte+$anzahl[$rand];
    $neubekid $bekid+1;
    mysql_query("update dieb_user_".$digit." Set geld = '".$neuepunkte."', 
    bekid = '"
    .$neubekid."' WHERE id = '".$_GET['id']."'");
    $inhalt .= '<BR><BR>Der User "'.$names.'" hat jetzt '.$neuepunkte.' '.$waehrung.'!';
    }
    else
    {
    $inhalt .= 'Sie können pro Tag nur ein mal beklaut werden, <B>"'.$names.'"</b>
     hat von Ihnen keinen Punkt bekommen '
    ;
    }
    $inhalt .= '<BR><BR>Wollen sie auch ein Dieb werden ? 
    Dann melden sie sich an, oder informieren sie sich.<BR>
    <a href="http://collectmoney.eu/">Weiter zur Anmeldung!</a><BR>
    <a href="http://collectmoney.eu/">Was ist "Diebspiel" ?</a>'
    ;
    $template implode("",file("template/style.html"));
    $template str_replace("<?inhalt?>"$inhalt$template);
    echo (
    $template);

    ?>
    die funktion ip_sperre funktioniert leider nicht so wie ich es will, aus dem grund, dass REMOTE_ADDR nicht die ip des clients meiner seite ausgibt. deshalb wird das nix mit der ip-sperre. wie kann man das denn anders machen ?


    Vielen dank für eure Hilfe !!!!
    Zuletzt geändert von general_xxx; 10.08.2006, 21:04.

  • #2
    brich dein code um!
    und wenn schon: $_SERVER['REMOTE_ADDR']

    Kommentar


    • #3
      so, hab ich jetzt mal ein bisschen verkleinert, was meinst du denn damit ? $_SERVER['REMOTE_ADDR']

      Kommentar


      • #4
        http://www.google.de/search?hl=de&q=...+globals&meta=

        Kommentar


        • #5
          ich hab es lieber, dass register_globals off ist, geht das denn nicht auch ohne globals ?

          Kommentar


          • #6
            Original geschrieben von general_xxx
            so, hab ich jetzt mal ein bisschen verkleinert, was meinst du denn damit ? $_SERVER['REMOTE_ADDR']
            einfach mal per echo ausgeben lassen.
            alternativ phpinfo(); aufrufen und nachschauen, was dort alles zur verfügung steht.

            und richtig ist, dass dir das nur die ip des clients oder proxys liefert.
            d.h., die ip kann sich bei jedem aufruf ändern.
            cookies kämen auch noch in betracht, können aber auch gefälscht werden.
            ebenso wie referrer ... etc.

            Kommentar


            • #7
              Original geschrieben von general_xxx
              ich hab es lieber, dass register_globals off ist, geht das denn nicht auch ohne globals ?
              und was glaubst du, was 3DMax dir empfohlen hat?

              Kommentar


              • #8
                naja wenn ich mal so fragen darf, wie machen das denn sone seiten wie zb layer-ads mit der 24 h sperre. wie holen die sich denn die ip des clients ?

                noch ne kleine sache, wie sicherlich festgestellt speichert der die ips ind der ips.txt, aber daraus werd ich leider nicht schlau...

                Code:
                |1154463602
                |1154463630
                |1154463967
                |1154464009
                |1154464041
                |1154464118
                |1154464655
                |1154469314
                |1154469664
                |1154477976
                |1155077963
                |1155077966
                |1155077969
                |1155233514
                |1155234716
                was sollen diese zahlen bedeuten.

                und denn nochne sache, undzwar das hauptproblem. viele leute habem mir schon gesagt, dass wenn sie einen link bekommen haben, dass der breowser angezeigt hat "du wurdest bereits beklaut ...usw." obwohl dieser user die letzten 24 bzw noch nie auf meiner site war.... wieso das denn ?

                Kommentar


                • #9
                  naja wenn ich mal so fragen darf, wie machen das denn sone seiten wie zb layer-ads mit der 24 h sperre. wie holen die sich denn die ip des clients ?
                  keine ahnung, kenne ich nicht.
                  und denn nochne sache,[...] wieso das denn ?
                  keine ahnung, kenne ich nicht.
                  was sollen diese zahlen bedeuten.
                  das sind wohl unix timestamps.

                  Kommentar


                  • #10
                    Original geschrieben von general_xxx
                    naja wenn ich mal so fragen darf, wie machen das denn sone seiten wie zb layer-ads mit der 24 h sperre. wie holen die sich denn die ip des clients ?
                    ich kenne die seiten auch nicht, aber wahrscheinlich setzen die einfach nur ein cookie.


                    [add]

                    und denn nochne sache, undzwar das hauptproblem. viele leute habem mir schon gesagt, dass wenn sie einen link bekommen haben, dass der breowser angezeigt hat "du wurdest bereits beklaut ...usw." obwohl dieser user die letzten 24 bzw noch nie auf meiner site war.... wieso das denn ?
                    dito - cookie

                    Kommentar


                    • #11
                      also bei phpinfo(); steht unter php variables das


                      Code:
                      _SERVER["SERVER_ADDR"]	             127.0.0.1

                      aber das zeigt doch die server ip an, oder ?

                      Kommentar


                      • #12
                        und sry dass ich nochmal so direkt frage, aber ich bin noch dabei zu lernen, was muss ich denn jetzt oben in meinem script ändern,?

                        Kommentar


                        • #13
                          ja, es heißt ja auch SERVER_ADDR - was erwartest du?

                          Kommentar


                          • #14
                            mhhh... ok, denn ist das das fdalsche ...

                            ich brauche für mein spiel die ip des clients, aber irgendwie funktioniert das manchmal nicht, denn kommt halt die fehlermeldung, dass diese ip-adresse schon vorhanden ist, ergo, dass der spieler schon auf meiner seite war, obwohl der noch niemals dort war, und das find ich merkwürdig... aber ich hab den fehler auch noch nicht gefunden

                            gibt es denn noch eine andere art die ip des clients raus zu finden, ohne register globals zu verwenden ?
                            Zuletzt geändert von general_xxx; 10.08.2006, 21:41.

                            Kommentar


                            • #15
                              http://www.google.de/search?hl=de&q=php+client+ip&meta=

                              Kommentar

                              Lädt...
                              X