使用 PHP Ping 伺服器連接埠
取得遠端伺服器的連線狀態是網路管理和測試的一個重要面向。 PHP 提供了一種使用 fsockopen() 函數 ping IP 位址和連接埠的簡單方法。但是,問題中提到的現有腳本僅限於測試網站,而不是特定的 IP:連接埠組合。
為了解決此需求,我們可以利用 TCP 連線建立機制。透過嘗試與給定的 IP 位址和連接埠建立 TCP 連接,我們可以推斷伺服器的可用性。下面的程式碼封裝了此功能:
<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>
此程式碼片段決定伺服器是否在指定連接埠上接受 TCP 連線。如果在給定的逾時時間內建立了連接,則函數將傳回 ping 回應時間(以毫秒為單位);否則,它會傳回「down」以指示伺服器無法存取。
要進一步細化回應,您可以使用接受的答案中提供的pingDomain() 函數:
<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>
透過利用PHP 的套接字函數,我們可以有效地ping IP地址和域名,以測試連接並識別無回應的主機。
以上是如何在 PHP 中 Ping 遠端伺服器連接埠?的詳細內容。更多資訊請關注PHP中文網其他相關文章!