Ankündigung

Einklappen
Keine Ankündigung bisher.

Serverscript: Autm. IP, Datum und Uhrzeit -Speicherung. Wie?

Einklappen

Neue Werbung 2019

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

  • Serverscript: Autm. IP, Datum und Uhrzeit -Speicherung. Wie?

    Hi!
    Ich würd gern 'n PHP Script für meinen Server machen, dass optisch eine Weiterleitung ist, im Hintergrund aber IP, Datum und Uhrzeit des Besuches/des Besuchers in einer MySQL-Datenbank speichert.

    Wie mach ich das?

    THX 4 HELP!

    (Da ich noch Anfänger bin, würd ich mich über kleine oder große Code-Schnipsel freuen! )

  • #2
    Code:
    $proxy ="";
    $ip="";
    
    if ($_SERVER["HTTP_X_FORWARDED_FOR"]) {  
            
             if ($_SERVER["HTTP_CLIENT_IP"]) {  
              		$proxy = $_SERVER["HTTP_CLIENT_IP"]; 
               } else {  
                	$proxy = $_SERVER["REMOTE_ADDR"]; 
               } 
         
     	 $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    
    } else {  
    
          if ($_SERVER["HTTP_CLIENT_IP"]) {  
           		$ip = $_SERVER["HTTP_CLIENT_IP"];  
           } else {   
           		$ip = $_SERVER["REMOTE_ADDR"];  
           }
     }
     	 $ref=$_SERVER['HTTP_REFERER'];    
     mysql_query("insert into urls  (url,zeitpunkt,ip,proxy,ref) values('".mysql_escape_string($_GET['url'])."',NOW(),'".$ip."','".$proxy."','".$ref."')");        
        	  header("location:".$_GET['url']);

    Kommentar


    • #3
      Fragen:

      Wie heißt die tabelle, wo eingetragen wird? ("urls" ?)
      Wo muss ich die datenbank-daten angeben?
      HTTP_X_FORWARDED_FOR soll da anstatt X die zielur rein?

      Wie kann ich das dann auslesen? (in tabellen m besten)

      Kommentar


      • #4
        Zitat von Pain-maker
        Fragen:
        Wie heißt die tabelle, wo eingetragen wird? ("urls" ?)
        jap

        Zitat von Pain-maker
        Wo muss ich die datenbank-daten angeben?
        Wie kann ich das dann auslesen? (in tabellen m besten)[/
        s.h. http://de.php.net/mysql_fetch_object

        Zitat von Pain-maker
        HTTP_X_FORWARDED_FOR soll da anstatt X die zielur rein?
        http://de.php.net/return schau dir mal den ersten kommentar an

        Code:
        header("location:".$_GET['url']);
        ist die weiterleitung

        Kommentar


        • #5
          müsste das also dann so aussehen?
          (Bei der Ausgabe)

          Code:
          mysql_connect("hostname", "user", "password");
          mysql_select_db("mydb");
          $result = mysql_query("select * from url");
          while ($row = mysql_fetch_object($result)) {
             echo $zeitpunkt->zeitpunkt;
             echo $ip->ip;
             echo $proxy->proxy;
             echo $ref->ref;
          }

          Kommentar


          • #6
            war fast richtig
            Code:
            mysql_connect("hostname", "user", "password"); 
            mysql_select_db("mydb"); 
            $result = mysql_query("select * from url"); 
            while ($data= mysql_fetch_object($result)) { 
               echo $data->zeitpunkt; 
               echo $data->ip; 
               echo $data->proxy; 
               echo $data->ref; 
            }
            hier haste ma das php manual
            http://www.ipm-networks.de/php_manual_de.chm
            http://www.ipm-networks.de/php_manual_chm_12.zip

            Kommentar


            • #7
              Also, ich hab mal die dateien auf meinen webspace geladen:

              weiterleitung.php
              Code:
              <?php
              
              $proxy =""; 
              $ip=""; 
              
              if ($_SERVER["HTTP_X_FORWARDED_FOR"]) {  
                      
                       if ($_SERVER["HTTP_CLIENT_IP"]) {  
                              $proxy = $_SERVER["HTTP_CLIENT_IP"]; 
                         } else {  
                             $proxy = $_SERVER["REMOTE_ADDR"]; 
                         } 
                    
                   $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
              
              } else {  
              
                    if ($_SERVER["HTTP_CLIENT_IP"]) {  
                           $ip = $_SERVER["HTTP_CLIENT_IP"];  
                     } else {    
                           $ip = $_SERVER["REMOTE_ADDR"];  
                     } 
               } 
                   $ref=$_SERVER['HTTP_REFERER'];    
               mysql_query("insert into urls  (url,zeitpunkt,ip,proxy,ref) values('".mysql_escape_string($_GET['SEITE.HTM'])."',NOW(),'".$ip."','".$proxy."','".$ref."')");        
                       header("location:".$_GET['SEITE.HTM']);
              
              ?>
              admin_stats.php
              Code:
              <?php
              
              mysql_connect("LOCALHOST", "DB-USERNAME", "DB-PASSWORT"); 
              mysql_select_db("DATENBANK-NAME"); 
              $result = mysql_query("select * from url"); 
              while ($data= mysql_fetch_object($result)) { 
                 echo $data->zeitpunkt; 
                 echo $data->ip; 
                 echo $data->proxy; 
                 echo $data->ref; 
              }
              
              ?>
              aber wenn ich auf weiterleitung.php gehe, sehe ich nur:
              Redirected to

              Generated by Opera ©


              und wenn ich auf der admin_stats.php die bisherigen daten abrufen will kommt folgender Fehler:
              Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/web1044/html/dbsave/admin_stats.php on line 6

              Die Tabelle hab ich natürlich auch angelegt!
              (der ausgegebene Befehl bei mir)
              Code:
              CREATE TABLE `urls` (
              `zeitpunkt` VARCHAR( 10000000000000 ) DEFAULT '0' NOT NULL ,
              `ip` VARCHAR( 10000000000000 ) DEFAULT '0' NOT NULL ,
              `proxy` VARCHAR( 10000000000000 ) DEFAULT '0' NOT NULL ,
              `ref` VARCHAR( 10000000000000 ) DEFAULT '0' NOT NULL 
              )

              Kommentar


              • #8
                nicht ausprobiert müsste aber glaube ich funken..

                admin_stats.php

                Code:
                <?php 
                
                mysql_connect("LOCALHOST", "DB-USERNAME", "DB-PASSWORT"); 
                mysql_select_db("DATENBANK-NAME"); 
                $result = mysql_query("select * from urls"); //urls stat url denn du hast ne urls tabelle angelegt ;)
                while ($data= mysql_fetch_object($result)) { 
                   echo $data->zeitpunkt; 
                   echo $data->ip; 
                   echo $data->proxy; 
                   echo $data->ref; 
                } 
                mysql_close();
                ?>
                die seite muss so aufgerufen werden, weil wir $_GET benutzen!!!!!

                weiterleitung.php?url=seite.html
                Code:
                <?php 
                
                $proxy =""; 
                $ip=""; 
                $url=$_GET['url'];
                
                if ($_SERVER["HTTP_X_FORWARDED_FOR"]) {  
                        
                         if ($_SERVER["HTTP_CLIENT_IP"]) {  
                                $proxy = $_SERVER["HTTP_CLIENT_IP"]; 
                           } else {  
                               $proxy = $_SERVER["REMOTE_ADDR"]; 
                           } 
                      
                     $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
                
                } else {  
                
                      if ($_SERVER["HTTP_CLIENT_IP"]) {  
                             $ip = $_SERVER["HTTP_CLIENT_IP"];  
                       } else {    
                             $ip = $_SERVER["REMOTE_ADDR"];  
                       } 
                 } 
                
                mysql_connect("LOCALHOST", "DB-USERNAME", "DB-PASSWORT"); //db verbindung
                mysql_select_db("DATENBANK-NAME");
                
                $ref=$_SERVER['HTTP_REFERER'];    
                 mysql_query("insert into urls  (url,zeitpunkt,ip,proxy,ref) values('".mysql_escape_string($url)."',NOW(),'".$ip."','".$proxy."','".$ref."')");        
                mysql_close();  
                header("location:".$url); 
                	
                	exit;
                ?>
                db struktur
                Code:
                CREATE TABLE `urls` ( 
                  `id` int(11) NOT NULL auto_increment, 
                  `zeitpunkt` datetime default NULL, 
                  `url` varchar(100) default NULL, 
                  `ip` varchar(20) default NULL, 
                  `proxy` varchar(20) default NULL, 
                  `ref` varchar(150) default NULL, 
                  PRIMARY KEY  (`id`), 
                  UNIQUE KEY `ID` (`id`) 
                ) TYPE=MyISAM;

                Kommentar


                • #9
                  Riesengroßes Dankeschön!!!!!!!!

                  Kann man eigentlich auch 'n Script machen, dass auf Server A (der bei mir steht) immer die IP rausfindet und sie automatisch, aller 10 min. an z.B. einen Tripod-Free-Host-Server schickt und sie dort in einer datei anzeigbar ist?

                  Kommentar


                  • #10
                    Zitat von Pain-maker
                    Riesengroßes Dankeschön!!!!!!!!

                    Kann man eigentlich auch 'n Script machen, dass auf Server A (der bei mir steht) immer die IP rausfindet und sie automatisch, aller 10 min. an z.B. einen Tripod-Free-Host-Server schickt und sie dort in einer datei anzeigbar ist?
                    klar geht das, aber wofür..?!?
                    du brauchst doch einfach nur von deinem "Tripod-Free-Host-Server " die statistick seite ,die die ips auflistet, auf deinem anderen server auszulesen. damit haste unteranderem keinen überflüssigen traffic.

                    Kommentar


                    • #11
                      Ich hab ml 'n Schaubild erstellt was ich meine:
                      Mein Server soll nämlich (fast) immer erreichbar sein, aber er hat keine feste ip, deshalb soll er sie immer übermitteln.



                      Ich würd meinen server ja gerne immer anlassen, aber nach 24h wächselt ja immer die IP, und so können alle, die auf meinen server wollen immer meine aktuellste IP sehen.

                      Kommentar

                      Lädt...
                      X