[Funktion] Verfügbarkeit eine Datei mit PHP abfragen

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

  • [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

    Kommentar


    • #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

      Kommentar


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

        Kommentar


        • #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...

          Kommentar


          • #6
            http://www.google.de/search?q=php+fs...n+head+request
            http://tut.php-quake.net/fsockopen.html#u4
            Wir werden alle sterben

            Kommentar


            • #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?

              Kommentar


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

                Kommentar


                • #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";
                  }  

                  ?>
                  Zuletzt geändert von raffiausgoslar; 10.01.2008, 12:17.

                  Kommentar


                  • #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

                    Kommentar


                    • #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!!!

                      Kommentar


                      • #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

                        Kommentar


                        • #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]

                          Kommentar


                          • #14
                            ...abgeändert

                            lg Raffi

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

                            Kommentar


                            • #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.

                              Kommentar

                              Lädt...
                              X