Heim > Artikel > Backend-Entwicklung > Wie pinge ich einen Remote-Server-Port in PHP an?
Anpingen eines Server-Ports mit PHP
Das Ermitteln des Konnektivitätsstatus eines Remote-Servers ist ein entscheidender Aspekt der Netzwerkverwaltung und -prüfung. PHP bietet eine einfache Möglichkeit, eine IP-Adresse und einen Port mithilfe der Funktion fsockopen() anzupingen. Das in der Frage erwähnte vorhandene Skript beschränkt sich jedoch auf das Testen von Websites und nicht auf bestimmte IP-Port-Kombinationen.
Um diesem Bedarf gerecht zu werden, können wir den TCP-Verbindungsaufbaumechanismus nutzen. Durch den Versuch, eine TCP-Verbindung mit einer bestimmten IP-Adresse und einem bestimmten Port herzustellen, können wir auf die Verfügbarkeit des Servers schließen. Der folgende Code kapselt diese Funktionalität:
<code class="php"><?php function ping($host, $port, $timeout) { $tB = microtime(true); $fP = fsockopen($host, $port, $errno, $errstr, $timeout); if (!$fP) { return "down"; } $tA = microtime(true); return round((($tA - $tB) * 1000), 0)." ms"; } // Usage example: ping a server at IP address 127.0.0.1, port 80 echo ping("127.0.0.1", 80, 10); ?></code>
Dieses Codefragment bestimmt, ob ein Server TCP-Verbindungen am angegebenen Port akzeptiert. Wenn innerhalb des angegebenen Timeouts eine Verbindung hergestellt wird, gibt die Funktion die Ping-Antwortzeit in Millisekunden zurück; Andernfalls wird „down“ zurückgegeben, um anzuzeigen, dass der Server nicht erreichbar ist.
Um die Antwort weiter zu verfeinern, können Sie die Funktion pingDomain() verwenden, die in der akzeptierten Antwort bereitgestellt wird:
<code class="php"><?php function pingDomain($domain){ $starttime = microtime(true); $file = fsockopen ($domain, 80, $errno, $errstr, 10); $stoptime = microtime(true); $status = 0; if (!$file) $status = -1; // Site is down else { fclose($file); $status = ($stoptime - $starttime) * 1000; $status = floor($status); } return $status; } // Usage example: ping a server at domain name example.com echo pingDomain("example.com"); ?></code>
Durch die Nutzung der Socket-Funktionen von PHP können wir sowohl IP-Adressen als auch Domänennamen effektiv anpingen, um die Konnektivität zu testen und nicht reagierende Hosts zu identifizieren.
Das obige ist der detaillierte Inhalt vonWie pinge ich einen Remote-Server-Port in PHP an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!