首頁  >  文章  >  後端開發  >  如何在 PHP 中 Ping IP 位址和連接埠號碼 (IP:port)

如何在 PHP 中 Ping IP 位址和連接埠號碼 (IP:port)

Susan Sarandon
Susan Sarandon原創
2024-10-18 12:09:43793瀏覽

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

如何在PHP 中Ping IP 位址和連接埠號碼

問題:

問題:

於ping IP 位址和連接埠號碼(IP:port)以檢查伺服器可用性的腳本。

解決方案:

<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>

提供的初始腳本只能 ping 網站,但不能IP:連接埠。為了解決這個問題,可以使用修改版本:

此腳本使用 fsockopen() 建立到指定 IP 和連接埠的 TCP 連線。它測量連接所需的時間,並以毫秒為單位返回 ping 時間,如果無法建立連接,則返回「down」。

    其他注意事項:
  • 對於 TCP 以外的協定(例如 UDP),需要付出額外的努力來實現 ping 功能。
應探索 OSI 模型和傳輸層協定(ICMP 和 TCP),以更深入地了解網路通訊。

以上是如何在 PHP 中 Ping IP 位址和連接埠號碼 (IP:port)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn