Heim >Backend-Entwicklung >PHP-Tutorial >Kann PHP eine bestimmte Kombination aus IP und Port anpingen?

Kann PHP eine bestimmte Kombination aus IP und Port anpingen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-18 12:37:35443Durchsuche

Can PHP Ping a Specific IP and Port Combination?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn