Dateistatus auf anderem Server ermitteln

firstlord18

Erfahrenes Mitglied
Hi,
ich wollte mal fragen, ob sich ein Script realisieren lässt, welches den Status einer Datei auf einem anderem Server ausgibt, und diesem dann in Form von einem Text (Bsp: Offline bzw. Online) ausgibt ,

Ich hab schon folgende Sachen versucht:
1.
PHP:
<?PHP
 $datei = "http://www.websamba.com/nsane2/trailer_divx5_veryhigh.zip";
 if(is_readable($datei))
 echo "Online";
 else
 echo "Offline";
 ?>

2.
PHP:
<?PHP
 $datei = 'http://www.websamba.com/nsane2/trailer_divx5_veryhigh.zip';
 if(file_exists($datei))
 echo "Die Datei $datei ist existent";
 else
 echo "Die Datei $datei ist nicht existent";
 ?>

3.
PHP:
<?PHP
 $server="http://www.websamba.com/nsane2/trailer_divx5_veryhigh.zip:80";
 $array = explode(":",$server);  
 if (@fsockopen($array[0],$array[1],&$errno, &$errstr, 2))
 {  
  echo "<p><a href=\"http://".$array[0]."\">http://".$array[0]."</a> ist <b class=green>Online</b></p>";  
 }else
 {  
  echo "<p><a href=\"http://".$array[0]."\">http://".$array[0]."</a> ist <b class=red>Offline</b></p>";  
 } 
 ?>


4.
PHP:
<?php
 function urlfind($link){
 	if($link) {
 		$file = @fopen ($link, "r");
 	}
 	if($file){
 		return true;
 		fclose($file);
 	} else {
 		return false;
 	}
 }
 
 $link = "http://www.websamba.com/nsane2/trailer_divx5_veryhigh.zip";
 if(urlfind($link)){
 	echo "online";
 } else {
 	echo "offline";
 }
 ?>

alles funktioniert nicht. Ich suche in etwa so etwas wie dort:
http://home.hccnet.nl/h.edskes/mirror.htm

Wäre nett, wenn mir jemad helfen könnte. Danke .
 
Der Ansatz mit fsockopen ist schon der richtige, allerdings musst du an die Funktion den Host und den Port übergeben, und nicht die URL.
PHP:
fsockopen('domain.tld', 80);
 
Oliver Gringel hat gesagt.:
Der Ansatz mit fsockopen ist schon der richtige, allerdings musst du an die Funktion den Host und den Port übergeben, und nicht die URL.
PHP:
fsockopen('domain.tld', 80);
bitte schreib ma die voll funktion. weil ich weiß jetzt nicht so ganz, was du meinst. sry.
 
Try this:

Code:
<?php
$file = fopen ("http://www.name.tld/pfad/datei.zip", "r");
if (!$file) {
    echo "offline";
}else{
    echo "online";
}
?>


Irgendwoher hab ich noch ein etwas genaueren Codeschnippsel. Der überprüft ob Status 200 (Daten wurde erfolgreich geladen) oder halt anders ist, was dann einen anderen Status zurückgibt (Daten nicht erfolgreich geladen).

Ungetestet!

Code:
<?PHP
if ($fp = @fsockopen('www.name.tld', 80)) echo 'Status OK<br/>';

@fputs($fp, "HEAD /pfad/datei.zip HTTP/1.1\r\n");
@fputs($fp, "Host: www.name.tld\r\n");
@fputs($fp, "Accept: */*\r\n");
@fputs($fp, "Connection: close\r\n\r\n");

echo 'Antwort: <br/><b>';

while (!@feof($fp)) echo nl2br(fgets($fp));

echo '</b>';

@fclose($fp);
?>
 
@Neurodeamon

deine 2. Lösung funktioniert zwar, nur bekomme ich immer de Status ok. Auch wenn ich den Pfad zur Datei völlig falsch schreiebe.
 
Zurück