3 Stimmen

In php-Skript ermitteln, ob eine Verbindung zum Internet besteht?

Wie kann ich überprüfen, ob ich mit meinem PHP-Skript, das auf meinem Entwicklungsrechner (und nicht auf einem Server irgendwo) läuft, mit dem Internet verbunden bin?

Ich führe das Skript aus, um eine Reihe von Dateien (die existieren können oder auch nicht) mit wget herunterzuladen. Wenn ich den wget-Download versuche, ohne verbunden zu sein, fährt wget mit dem nächsten fort und denkt, dass die Datei nicht vorhanden ist, also muss ich das überprüfen, bevor ich wget aufrufe.

0 Stimmen

@Mark Baker - oh je! Ja, das ist meins - ich hatte bei meinem ersten Posting keinen Erfolg und habe es nach einer Weile noch einmal versucht... bitte zusammenführen, wenn Sie können!

6voto

woodleader Punkte 903

Prüfen Sie einfach, ob google.com erreichbar ist:

<?php
if (!$sock = @fsockopen('www.google.com', 80, $num, $error, 5))
echo 'offline';
else
echo 'OK';
?>

0 Stimmen

Was ist $num, $error, 5 Parameter ?

1voto

Merijn Punkte 2250

Eine schnelle Überprüfung wäre die Suche nach einem Hostnamen für eine Domäne.

<?php
$ip = gethostbyname('www.google.com');
if($ip != 'www.google.com') {
  //connected!
} else {
  //not connected
}
?>

0 Stimmen

Ein DNS-Server im lokalen Netz funktioniert in der Regel auch dann noch, wenn die Verbindung nach außen ausfällt. Da DNS-Abfrageantworten zwischengespeichert werden, kann dies eine IP-Adresse zurückgeben für Stunden des Offline-Zustands.

0 Stimmen

Google hat viele rotierende IP-Adressen für diese eine Domäne, so dass ich nicht sicher bin, ob das Zwischenspeichern ihrer IP überhaupt eine gute Idee ist.

0 Stimmen

Nun, es wird die Seite von jede dieser IP-Adressen (es ist ja nicht so, dass immer nur eine von ihnen aktiv ist), also ja, es ist eine gute Idee. (wenn nicht, steht es Google frei, seine autoritativen Nameserver so einzustellen, dass sie DNS-Ergebnisse mit winzigen TTLs zurückgeben)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X