Heim > Artikel > Backend-Entwicklung > Warum gibt meine PHP-Ping-Funktion unabhängig von der IP-Adresse immer „dead“ zurück?
Anpingen einer IP-Adresse mit PHP und Echo des Ergebnisses
Bei dieser Programmierfrage sucht ein Benutzer Hilfe beim Erstellen einer PHP-Funktion zum Pingen eine IP-Adresse und zeigt an, ob sie aktiv ist oder nicht. Sie haben eine Funktion implementiert, die jedoch unabhängig von der angegebenen IP-Adresse immer „tot“ zurückgibt.
Anfangsfunktion:
function pingAddress($ip){ $pingresult = shell_exec("start /b ping $ip -n 1"); $dead = "Request timed out."; $deadoralive = strpos($dead, $pingresult); if ($deadoralive == false){ echo "The IP address, $ip, is dead"; } else { echo "The IP address, $ip, is alive"; } }
Erklärung:
Die Funktion versucht, die IP-Adresse mithilfe der Funktion „shell_exec“ zu pingen, mit der Option -n 1, um nur eine Ping-Anfrage zu senden. Anschließend wird die Ausgabe des Ping-Befehls auf die Zeichenfolge „Zeitüberschreitung der Anforderung“ überprüft. um festzustellen, ob die IP-Adresse aktiv ist.
Probleme:
Vorgeschlagene Lösung:
Die Frage des Benutzers schlägt auch eine alternative Lösung vor:
function pingAddress($ip) { $pingresult = exec("/bin/ping -n 3 $ip", $outcome, $status); if (0 == $status) { $status = "alive"; } else { $status = "dead"; } echo "The IP address, $ip, is ".$status; }
Erklärung:
Diese Funktion:
Das obige ist der detaillierte Inhalt vonWarum gibt meine PHP-Ping-Funktion unabhängig von der IP-Adresse immer „dead“ zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!