Heim >Backend-Entwicklung >PHP-Tutorial >So pingen Sie eine IP-Adresse und Portnummer (IP:port) in PHP an

So pingen Sie eine IP-Adresse und Portnummer (IP:port) in PHP an

Susan Sarandon
Susan SarandonOriginal
2024-10-18 12:09:43831Durchsuche

How to Ping an IP Address and Port Number (IP:port) in PHP

So pingen Sie eine IP-Adresse und Portnummer in PHP an

Problem:

Entwicklung ein Skript zum Anpingen einer IP-Adresse und einer Portnummer (IP:Port), um die Serververfügbarkeit zu überprüfen.

Lösung:

Das ursprünglich bereitgestellte Skript kann nur Websites anpingen, jedoch nicht IP:Ports. Um dieses Problem zu beheben, kann eine modifizierte Version verwendet werden:

<code class="php">function ping($host, $port, $timeout)
{
    $start = microtime(true);
    $fp = fsockopen($host, $port, $errno, $errstr, $timeout);
    $end = microtime(true);
    return $fp ? round((($end - $start) * 1000), 0) . " ms" : "down";
}

// Example usage
$host = "193.33.186.70";
$port = 80;
$ping = ping($host, $port, 10); // Set a timeout of 10 seconds

if ($ping != "down") {
    echo "Server is up with a ping of $ping";
} else {
    echo "Server is down";
}</code>

Dieses Skript verwendet fsockopen(), um eine TCP-Verbindung zur angegebenen IP und zum angegebenen Port herzustellen. Es misst die Zeit, die zum Herstellen einer Verbindung benötigt wird, und gibt die Ping-Zeit in Millisekunden oder „Down“ zurück, wenn keine Verbindung hergestellt werden konnte.

Weitere Überlegungen:

  • Für andere Protokolle als TCP (z. B. UDP) ist zusätzlicher Aufwand erforderlich, um Ping-Funktionen zu implementieren.
  • Das OSI-Modell und die Transportschichtprotokolle (ICMP und TCP) sollten für ein tieferes Verständnis der Netzwerkkommunikation untersucht werden.

Das obige ist der detaillierte Inhalt vonSo pingen Sie eine IP-Adresse und Portnummer (IP:port) in PHP an. 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