Anzeige:
Ergebnis 1 bis 15 von 15

Thema: Warum das nich geh???

  1. #1
    LinuxNewbee
    Gast

    Unhappy Warum das nich geh???

    hallo! ich habe auf www.icooc.com eine txt datei liegen serverip.txt.
    auf cve.icooc.com liegt folgendes skript:

    PHP-Code:
            $fp fopen("http://www.icooc.com/serverip.txt","r");
            
    $IP fread ($fp700);
            
    fclose($fp);

            
    $IP strchr($IP,"80.143.");
            
    $Adress explode(" ",$IP);
            
    $IP $Adress[0]; 
    So jetzt müsste er die IP haben oder nicht???
    wenn ich jetzt ein echo http//$IP/blablabla.php müsste er doch eigentlich den server finden oder?
    dat luppt aber nich!

  2. #2
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Bei mir funktioniert dein Skript....

    Ich würds anstatt http//$IP/blablabla.php mal mit http://$IP/blablabla.php versuchen.

    Schreib mal das unten an das Skript dran:

    Code:
      header("Location:http://$IP");
    Dann müsste er dich eigentlich auf die IP weiterleiten.


  3. #3
    LinuxNewbee
    Gast

    hhhmmm

    funz aber nich! auf meinem lokalen webserver läufts! komisch, komisch!
    naja ich werd noch n bisl basteln...

  4. #4
    Registrierter Benutzer
    Registriert seit
    14.09.2002
    Ort
    Bruchsal
    Beiträge
    164
    vielleicht ist der URL-Wrapper auf www.icooc.com deaktiviert, dann kannst du Dateien auf anderen Servern nicht mit fopen() öffnen.

  5. #5
    LinuxNewbee
    Gast

    ja

    ja ich denke auch! Das wirds wohl sein! danke muss ich mir ne andere lösung einfallen lassen... jemand ne idee?

  6. #6
    Registrierter Benutzer
    Registriert seit
    05.06.2002
    Ort
    Hof
    Beiträge
    154
    hol dir die datei per ftp oder sowas rüber.

  7. #7
    Registrierter Benutzer
    Registriert seit
    14.09.2002
    Ort
    Bruchsal
    Beiträge
    164
    Naja, wenn dein Server Sockets in PHP unterstützt, dann könnte dir das helfen:
    PHP-Code:
    function http_get($server$file) {
      
    $socket=fsockopen($server80);

      if (!
    $socket)
        return 
    false;

      
    fputs($socket"GET /$file\r\n");

      
    $in="";
      while(!
    feof($socket)) {
        
    $in.=fgets($socket4096);
      }

      
    fclose($socket);

      return 
    $in;
    }

    $ip=http_get("www.icooc.com""serverip.txt");
    if (
    $ip === false)
      echo 
    "Fehler";
    else
      echo 
    $ip

  8. #8
    LinuxNewbee
    Gast

    hhmm

    hhmm, hab noch nie mit sockets gearbeitet! ich werd mich das mal reinknien, bis morgen...

  9. #9
    LinuxNewbee
    Gast

    Unhappy

    dat funzt leider auch nich! krieg da irgend'n wirschen html quelltext raus, der absolut nicht in der Datei steht! na egal!

  10. #10
    Registrierter Benutzer
    Registriert seit
    14.09.2002
    Ort
    Bruchsal
    Beiträge
    164
    Diese Kontent-Dokument-Nicht-Gefunden-Seite? Die hab ich auch rausbekommen, vielleicht wurde die Datei mittlerweile gelöscht?

  11. #11
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    mit

    PHP-Code:
    <?php
        $file_content 
    file("http://www.icooc.com/serverip.txt");
        echo 
    implode(""$file_content);
    ?>
    Ging das ganz wunderbar auszugeben. Aber von wo führst du denn das Script aus, welches das Textfile öffnen soll?
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  12. #12
    LinuxNewbee
    Gast

    server

    Also das Skript wird von www.icooc.com ausgeführt, welche bei Kontent gehostet ist!
    Das muss so sein, da die icooc.com Domain die feste IP hat und beim DeNic eingetragen ist! unser SienceServer hängt nur via T-DSL im Internet und updatet sein IP bei jeder Änderung in der serverip.txt Datei auf dem icooc Server.

    Der Server cve.icooc.com, der ebenfalls bei Kontent gehostet ist, soll nun auch die IP vom SienceServer wissen, um Projekte die gerade in Arbeit sind erfassen zu können.

    Also muss das Skript von cve.icooc.com aufgeführt werden, welches sich dann die IP aus der Datei auf dem icooc.com Server holt um dann auf den T-DSL ScienceServer zugreifen zu können.

    So der Stand momentan!

  13. #13
    Registrierter Benutzer
    Registriert seit
    14.09.2002
    Ort
    Bruchsal
    Beiträge
    164
    Dieses 404-Dokument, das du angezeigt bekommen haben müsstest (zumindest war das bei mir so, natürlich ohne die Grafiken!) lässt erst einmal darauf schliessen, dass die Datei serverip.txt nicht im DocumentRoot des icooc.com-Webservers liegt. Also quasi sowas wie "Datei nicht gefunden".

    Warum das, obwohl die Datei auf dem Server liegt (habs mit Telnet und HTTP 1.0-Anfragen ausprobiert)?
    Naja, Kontent benutzt anscheinend virtuelle Server mit einer IP, deshalb müssen wir dem Server noch explizit mitteilen, von welchem Server wir die Datei haben wollen (also aus welchem DocumentRoot ).

    Dazu müssen wir innerhalb der Funktion HTTP 1.0 benutzen, was das ganze etwas aufbläht:
    PHP-Code:
    <?

    function http_get($server, $file) {
      $socket=fsockopen($server, 80);

      if (!$socket)
        return false;

      // HTTP 1.0-Anfrage
      fputs($socket, "GET /$file HTTP/1.0\r\nHost: $server\r\n\r\n");

      // Rückgabewert empfangen und auswerten
      $retcode=fgets($socket, 4096);

      $ret = explode(" ", $retcode);

      if ($ret[1] != "200")  // != 200 bedeutet "Datei nicht gefunden" o.Ä.
        return false;

      // Header empfangen und auswerten
      while(!feof($socket)) {
        $header=fgets($socket, 4096);
        if ($header == "\r\n") // Der Header endet mit eienr Leerzeile
          break;
      }

      // Daten empfangen
      $in="";
      while(!feof($socket)) {
        $in.=fgets($socket, 4096);
      }

      fclose($socket);

      return $in;
    }

    $ip=http_get("www.icooc.com", "serverip.txt");
    if ($ip === false)
      echo "Fehler";
    else
      echo $ip;

    ?>
    Das mit der file()-Funktion geht übrigens nur, wenn die fopen-Wrapper aktiviert sind, wenn du Glück hast, führt aber eventuell ein Aufruf von
    ini_set("allow_url_fopen", "1");
    zum Erfolg

  14. #14
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    Ist die Subdomain zufällig auf den gleichen Server (gleiche IP) gemappt und dabei vielleicht sogar zufällig auf ein Unterverzeichnis des DocumentRoot? (Es gibt nen ganzen Satz die das so machen)

    Dann würde ein einfaches

    PHP-Code:
    $fh fopen("/pfad/zur/datei/serverip.txt"); 
    // oder 
    $fh fopen("../serverip.txt"); 
    Theoretisch doch reichen oder, seh ich das falsch? Dann bräuchte man diesen ganzen Kram von wegen HTTP Header auswerten, etc pp nicht.
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  15. #15
    Registrierter Benutzer
    Registriert seit
    14.09.2002
    Ort
    Bruchsal
    Beiträge
    164
    Nur wenn open_basedir nicht gesetzt ist

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •