Kann PHP eine IP:Port-Kombination anpingen?
Beim Versuch, die Verfügbarkeit eines Servers zu ermitteln, besteht ein gängiger Ansatz darin, ihn anzupingen IP-Adresse und ein angegebener Port. Ein Skript, das zum Pingen von Websites entwickelt wurde, reicht für diesen Zweck jedoch möglicherweise nicht aus.
Die Lösung
Um eine IP:Port-Kombination in PHP zu pingen, kann man fsockopen nutzen ()-Funktion. Hier ist ein bearbeitetes Skript, das dies erreichen kann:
<code class="php">function ping($host, $port, $timeout) { $start = microtime(true); $socket = fsockopen($host, $port, $errno, $errstr, $timeout); if (!$socket) { return "down"; } $end = microtime(true); fclose($socket); return round((($end - $start) * 1000), 0)." ms"; }</code>
In diesem Skript wird nach dem Herstellen einer Verbindung mit fsockopen() die Ping-Zeit anhand der Differenz zwischen den Start- und Endzeitstempeln berechnet. Wenn die Verbindung fehlschlägt, gibt die Funktion „down“ zurück.
Hinweis: Wie in der bereitgestellten Antwort erwähnt, funktioniert dieses Skript nur für TCP-Verbindungen. Für andere Protokolle sind möglicherweise fortgeschrittenere Techniken erforderlich, einschließlich benutzerdefinierter Paketgenerierung und -analyse.
Das obige ist der detaillierte Inhalt vonKann PHP eine bestimmte Kombination aus IP und Port anpingen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!