[Funktion] Verfügbarkeit eine Datei mit PHP abfragen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Funktion] Verfügbarkeit eine Datei mit PHP abfragen

    Ich würde gern ein Script schreiben, welche checkt ob eine Seite online oder nicht ist... Klingt jetzt erstmal ganz einfach, aber irgendwie finde ich ncihts passendes....

    mit file kann ich lediglich lokale files auf dem server auslesen und mit url "pingt" er nur die URL an...


    Ich würde das Script gerne auf Server 1 laufen lassen, von wo aus es dann die Verfügbarkeit eienr Datei auf Server 2 checkt...
    sprich:



    http://server1/check.php ---------> http://server2/bestimmte_datei.php


    wie kann ich das realisieren?

    Ich bin für jeden Ansatz dankbar!


    liebe Grüße,
    Raffi

  • #2
    Schau dir mal fsockopen() an.

    Grüße
    Nieder mit der Camel Case-Konvention

    Comment


    • #3
      OffTopic:

      <nostalgie>
      Da hab ich neulich etwas Egosurfing betrieben, und diesen Post von mir gefunden. Eine der wenigen Fragen, die ich je gestellt habe
      </nostalgie>

      Und ja, es ist tatsächlich der gute alte wahsaga =D

      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Comment


      • #4
        Suboptimal
        Ressourcenschonender wäre wirklich ein HEAD Request mit fsockopen()
        Wir werden alle sterben

        Comment


        • #5
          Schonmal Danke für die zahlreichen Antworten

          Hab mir jetzt mal fix das hier zusammengesetzt:

          PHP Code:
          <form method="POST" action="<?php $PHP_SELF ?>">
              <p><input type="text" name="T1" size="20"><input type="submit" value="Absenden" name="B1"></p>
          </form>
          <?php
          $hostip 
          $_POST["T1"];
          $port "80";

          if (
          $hostip == "")
          {
          echo 
          "Bitte Domain angeben";
          }
          else
          {
                  if (!
          $x = @fsockopen($hostip$port$errno$errstr5)) // attempt to connect
                  
          {
                      echo 
          "Server is down";
                  }
                  else
                  {
                      echo 
          "Server is up";
                      if (
          $x)
                      {
                          @
          fclose($x); 
                      }
                  } 
          }
          ?>
          Zum Domain abchecken klappts auch super... Hab aber immernoch nciht geblickt, was ich ejtzt ändern muss, damit er nch der bestimmten Datei schaut, denn wenn ich oben die komplette URL zur Datei angebe, gibts "Server is down", obwohl die Datei online ist...

          Comment


          • #7
            hm irgendwie haut das glaub ich nicht hin...

            hier mein code:

            PHP Code:
            <?php
            $hostip 
            "http://icqrecovery.extra.hu/seite.htm";



                
            $fp fsockopen($hostip// 127.0.0.1
                                
            80,          // Port 80 (HTTP)
                                
            $errno,      // Fehlernummer
                                
            $error,      // Fehlermeldung
                                
            5)           // Timeout in Sekunden
                      
            OR                     // wenn der Aufbau nicht erfolgreich war
                      
            die(                   // dann 'stirb'
                          
            $error.            // Fehlermeldung
                          
            "(".               //
                          
            $errno.            // mit Fehlernummer
                          
            ")"                //
                      
            );
                
            fwrite($fp"HEAD / HTTP/1.0\r\n");
                
            fwrite($fp"\r\n"); // Request beenden
                
            header('Content-Type: text/plain'); // Content-Type verändern
                
            while(!feof($fp)) {
                    
            $buffer fread($fp1025);
                    
            $buffer str_replace("\r\n"'\r\n'."\n"$buffer);
                    echo 
            $buffer;
                }
                
            fclose($fp); // Verbindung beenden
            ?>


            hab den checker einmal auf:

            http://87.118.114.153/on.php

            und einmal auf

            http://pcru.1gb.in/on.php

            liegen.... Einmal PHP Error - ok liegt vielleicht am Server ... aber beim zweiten? Es wird nur () ausgegeben... Selbst wenn das geforderte Dokument nicht vorhanden wäre, müsste doch mindestens nen 404er Error ausgegeben werden, oder?

            Comment


            • #8
              Wenn dein System sehr schweigsam ist, bleiben $errno und $error leer, wenn ein Fehler auftritt.

              Comment


              • #9
                Problem erledigt...

                Danke nochmal für eure Hilfe.

                Mache die Abfrage jetzt nach einem Bild reicht auch

                ging ja lediglich darum ob ein Webspace beim Freehoster noch existiert.... Und wenn mein Account da nicht erreichbar sein sollte, dann ist das Bild ja auch weg


                Für alle die Interesse dran haben:

                PHP Code:
                <?php

                if (is_array(@getimagesize("http://icqrecovery.extra.hu/online.gif")))
                {
                echo 
                "online";
                }
                else
                {
                echo 
                "offline";
                }  

                ?>
                Last edited by raffiausgoslar; 10-01-2008, 12:17.

                Comment


                • #10
                  PHP Code:
                  $hostip "http://icqrecovery.extra.hu/seite.htm"
                  Ja?.....

                  Fängt eine IP mit http an? Nein!
                  Endet eine IP mit htm? Auch nein!

                  Aber hat sich ja erledigt!
                  Wir werden alle sterben

                  Comment


                  • #11
                    @combi: Das sind auch nur Halbwahrheiten, was du hier verbreitest. Nirgendwo steht, dass der erste Parameter zwangsläufig eine IP sein muss. ka wer sich den falschen variablen Namen da ausgedacht hat, aber deswegen muss man ja nicht gleich reinfallen.

                    Ein beliebiger Host tut es natürlich auch. Das Protokoll und der Pfad sind natürlich trotzdem falsch.

                    *trfm* hat noch nie geschadet.

                    Aber jetzt wo der TS die FKT getimagesize() so schön missbraucht hat, ist ja alles paletti...
                    ICH BIN ICH!!!

                    Comment


                    • #12
                      $fp = fsockopen($hostip, // Voll korekt !!!
                      Aber nicht bei dieser Variablen: $hostip = "http://icqrecovery.extra.hu/seite.htm";


                      1. sind das voll Wahrheiten
                      2. weiß ich sehr wohl wie man einen HEAD Request absetzt
                      3. Kriege ich Pickel, bei einer solchen Resourcenverplemperung
                      4. Wenn es schon bei der Benamung von Variablen scheitert........


                      Und jetzt bin ich mit dem Thema durch...
                      Wir werden alle sterben

                      Comment


                      • #13
                        Für alle die Interesse dran haben:
                        Was natürlich völliger Mist ist weil du zwei Verbindungen öffnest und die eine Ignoriest und ... *wall*
                        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                        Comment


                        • #14
                          ...abgeändert

                          lg Raffi

                          p.s.: Nicht jeder wird als PHP-Gott geboren

                          Comment


                          • #15
                            p.s.: Nicht jeder wird als PHP-Gott geboren
                            Richtig. Aber man lernt ja gern dazu, nicht wahr?

                            Deine Lösung mit getimagesize() setzt allow_url_fopen voraus und hat keinen Timeout-Parameter. Das heißt, sie läuft unter Umständen überhaupt nicht oder braucht sehr lange, bevor "offline" ausgegeben wird.

                            Dein Problem ist gar nicht so sehr PHP. Du solltest dich darüber informieren, was ein Socket ist und beim nächten Mal das Manual gründlicher lesen. Eines von beiden hätte genügt, deine schon fast perfekte Lösung aus dem ersten Beitrag zu vollenden.

                            Comment

                            Working...